我使用地图来计算单词的出现次数。这是代码。输入终端问题和地图
#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;
}
我开始程序,键入单词并在最后一行输入单词“红色”,但它什么也没做。然后我键入“红色”第二次,它输出:
按任意键继续
有什么不好?
为什么你使用两次完全相同的循环测试?这意味着第二个循环不可能运行。 – 2010-07-18 09:51:21
@Marcelo:在评估s!=“red”之前,“s”会得到一个新值,因此第二个循环会运行。 – 2010-07-18 10:04:38
@Mattias:你让我在那里!那么,我可以建议,这是一个相当模糊的写逻辑的方式吗?这是否被预定的输入格式强加于你?你真的想要输入文件决定哪些键打印出来(以及以何种顺序),或者这只是一种不必要的全方位打印所有键的方式? – 2010-07-18 10:12:12