输入终端问题和地图

时间:2010-07-18 09:45:16

标签: c++

我正在使用地图计算单词的出现次数。这是代码。

#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
    map<string,int>wordcount;
    string s;

    while (cin>> s && s!="red")
        ++wordcount[s];

    while (cin>>s &&  s!="red")

    cout << s << "   " << wordcount[s] << endl;
    return 0;
}

我启动程序,输入单词并在最后一行输入单词“red”,但它没有做任何事情。然后我第二次输入“红色”并输出:

  

按任意键继续

出了什么问题?

3 个答案:

答案 0 :(得分:1)

没有错。当您“无需调试运行”时,Visual Studio将在程序结束前自动PAUSE程序以防止控制台窗口关闭。

答案 1 :(得分:1)

我知道您希望收到一个单词列表,将每个单词的出现次数填入地图,然后打印出来。

因此,您需要在您创建的地图上迭代,而不是第二个while循环,并打印每个单词的计数。

您可以了解here如何打印地图内容。

答案 2 :(得分:0)

在这里写得很昏昏沉沉,但我会第二次尝试。 :)

如果你写了很多单词,它会计算起来直到你写“红色”。 第二个循环将打印您输入的单词的计数,但如果您立即放置“红色”,它将直接终止程序而不打印任何内容。

尝试使用以下输入运行程序:

one
two
two
red
zero
one
two
red