关于win32控制台读取字符串的问题
vs2015吧
全部回复
仅看楼主
level 1
cceejrl 楼主
工具及版本:IDE:VS2015 C++ 11 win7_64
问题描述:
在学习C++过程中经常有从控制台读取字符串的例程,简单的读取可以如下:
while(cin >> str)
````
然而奇怪的是,貌似控制台出来后,输入一串字符回车后,并不能读取到结束符eof似得,以至于无法跳出while循环。在没遇到今天的问题之前,一直用getline(cin, str)搞定。
今天,学习到关联容器部分,在例程:
map<string, size_t> word_count;
string word;
while (cin >> word)
++word_count[word];
for (const auto &w : word_count)
cout << w.first << "occurs " << w.second << ((w.second > 1) ? " times" : " time") << endl;
中通过控制台输入单词并统计每个单词出现多少次的时候,循环while无法结束跳出,请问怎么避免这个问题?如图:
不管我按了多少次enter。
这个不解决,我估计后面的学习不大好调试,求大神指点迷津。
2015年10月11日 11点10分 1
level 1
cceejrl 楼主
[泪]
2015年10月11日 13点10分 3
level 3
输完后 用CTRL+Z 表示输入结束
2015年10月14日 05点10分 4
level 3
getline 是遇到回车就表示输入结束的 而cin需要文件结束符 就是CTRL+Z 是按这两个键
2015年10月14日 05点10分 5
1