用getline读取数字

时间:2013-09-19 23:10:54

标签: c++ getline cin

我有一个格式为(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,')');
    }
}

}

1 个答案:

答案 0 :(得分:0)

如果没有看到您的输入,很难分辨,但我认为这里发生的事情是您每次都使用','作为分隔符。你会发现,如果你的数字显示如下,这将会破裂:

1,2,3
4,5,6

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