我试图从控制台读取一个二维数组,但我的代码错误,读取了两次我的最后一行,我做错了什么??
示例输入:
1
01
10
输出:
10
10
int n;
cin>>n;
char *A=new char[n,n];
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cin>>A[i,j];
}
cin.ignore();
}发布于 2014-11-14 18:53:58
查看您的代码,我认为您正在尝试使2D数组成为动态大小,但是您的语法在声明和填充数组时都是错误的。将2d数组看作是指向数组的指针数组。这个问题之前已经被问过并回答过了:
发布于 2014-11-14 19:08:42
您已经陷入了逗号操作符的陷阱(这并不少见)。它是有效的C++,但是它不能执行您想要的操作:How does the Comma Operator work。您可能希望这样做:
cin>>n;
std::vector<std::vector<std::string>> A;
for(int i=0; i<n; i++)
{
A.push_back(std::vector<std::string>(n));
for(int j=0; j<n; j++) {
if(!(cin >> A[i][j])) {
break;
}
}
if(!cin)
break;
} https://stackoverflow.com/questions/26928230
复制相似问题