繁体   English   中英

从控制台读取2D阵列

[英]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数组视为指向数组的指针的数组。 以前曾问过此问题并已回答:

如何使用new在C ++中声明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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM