我必须为我的程序加载一些输入行,但我不知道为什么它对我不起作用:(
int n;
string count;
int *tab = new int[256];
cin >> n;
for (int i = 0; i < n; i++)
{
getline(cin, count);
cin.ignore();
for (int x = 0; x < count.size(); x++)
if(count[x]!=' ')tab[(int)count[x]]++;
}
这是我已经得到的,程序必须读取要加载的行数,然后加载行,并计算每个字母,并为n
行执行。
当我输入最后一行输入时,它会冻结,我尝试了没有cin.ignore()的getline,但它是一样的。
答案 0 :(得分:1)
“例如。我输入:2 Hello World hello world and it stucks”
你如何输入?每个单词之间必须有换行符,如果没有,这只是一行,所以程序仍然等待第二行(因为你输入了2)。
如果您希望空格为分隔符,只需将getline(cin, count);
替换为cin >> count;
,然后将cin.ignore();
放在每个的情况下(请参阅chris注释)。