vs2015吧 关注:9,558贴子:25,382
  • 3回复贴,共1

关于win32控制台读取字符串的问题

只看楼主收藏回复

工具及版本: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。
这个不解决,我估计后面的学习不大好调试,求大神指点迷津。


IP属地:四川1楼2015-10-11 19:50回复


    IP属地:四川3楼2015-10-11 21:47
    回复
      2025-08-12 21:09:05
      广告
      不感兴趣
      开通SVIP免广告
      输完后 用CTRL+Z 表示输入结束


      4楼2015-10-14 13:39
      回复
        getline 是遇到回车就表示输入结束的 而cin需要文件结束符 就是CTRL+Z 是按这两个键


        5楼2015-10-14 13:40
        回复