我有一个格式为(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,')');
}
}
}
答案 0 :(得分:0)
如果没有看到您的输入,很难分辨,但我认为这里发生的事情是您每次都使用','
作为分隔符。你会发现,如果你的数字显示如下,这将会破裂:
1,2,3
4,5,6
请注意,当您阅读第三个数字时,后面没有逗号。因此,将读取流,直到找到逗号。那是在下一行的第一个数字之后。那时,你不同步并跳过第一个号码。