将整个输入行加载到程序中

时间:2014-01-18 23:55:21

标签: c++ getline

我必须为我的程序加载一些输入行,但我不知道为什么它对我不起作用:(

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,但它是一样的。

1 个答案:

答案 0 :(得分:1)

“例如。我输入:2 Hello World hello world and it stucks”

你如何输入?每个单词之间必须有换行符,如果没有,这只是一行,所以程序仍然等待第二行(因为你输入了2)。

如果您希望空格为分隔符,只需将getline(cin, count);替换为cin >> count;,然后将cin.ignore();放在每个的情况下(请参阅chris注释)。