0

我有一行格式为 (int,int,int,char) 并希望将三个整数存储到 x,y,z 中,然后将 char 值放入我的 3D 数组中的该位置。但是,它会跳过第一个数字并转到第二个数字。有什么帮助吗?

void list_Input(char ***&a, const int &f, const int &n)
{
string line;

while (getline(cin, line, ',') && !line.empty())
{
    if (line[0] == '/' )
    {
        continue;
    }
    else
    {
        int y = stoi(line);
        getline(cin, line, ',');
        cout << line;
        int x = stoi(line);
        getline(cin,line,',');
        int f = stoi(line);

        a[z][x][y] = getline(cin,line,')');
    }
}

}

4

1 回答 1

0

如果没有看到您的输入,很难判断,但我认为这里发生的事情是您','每次都将其用作分隔符。您会发现,如果您的数字如下所示,这将中断:

1,2,3
4,5,6

请注意,当您阅读第三个数字时,它后面没有逗号。因此,将读取流直到找到逗号。那是在下一行的第一个数字之后。那时,您不同步并跳过了第一个数字。

于 2013-09-19T23:19:02.293 回答