从控制台读取2D数组

时间:2014-11-14 10:46:55

标签: c++ input console multidimensional-array

我正在尝试从控制台读取一个二维数组,但是我的代码错了,读了两遍我的最后一行,我做错了什么?

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();
    }

2 个答案:

答案 0 :(得分:0)

查看你的代码我认为你试图让2D数组成为动态大小,但是声明和填充数组的语法是错误的。将2d数组视为指向数组的指针数组。此问题之前已被问及并回答:

How do I declare a 2d array in C++ using new?

答案 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; 
}