[英]Reading a 2D Array from the console
我正在尝试从控制台读取二维数组,但是我的代码是错误的,并且读取了我最后一行的两倍,我在做什么错?
输入示例:
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();
}
查看您的代码,我认为您正在尝试使2D数组具有动态大小,但是声明和填充数组的语法是错误的。 将2d数组视为指向数组的指针的数组。 以前曾问过此问题并已回答:
您偶然发现了逗号运算符的陷阱(并不少见)。 它是有效的C ++,但不能满足您的期望: 逗号运算符如何工作 。 您可能想要这样做:
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.