我正在尝试从控制台读取一个二维数组,但是我的代码错了,读了两遍我的最后一行,我做错了什么?
INPUT示例:
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();
}
答案 0 :(得分:0)
查看你的代码我认为你试图让2D数组成为动态大小,但是声明和填充数组的语法是错误的。将2d数组视为指向数组的指针数组。此问题之前已被问及并回答:
答案 1 :(得分:0)
你偶然发现了逗号运算符的陷阱(并非罕见)。它是有效的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;
}