none
关于C++中输入操作符(>>)返回输入流对象的的问题 RRS feed

  • 问题

  • 我练习编写了下面的一段小程序
    #include <iostream>
    #include <string>
    #include <vector>
    
    using std::cout;
    using std::cin;
    using std::endl;
    using std::string;
    using std::vector;
    
    int main()
    {
        string word;
        vector<string> text;
        while (cin >> word)
        {
            text.push_back(word);
        }
        for(vector<string>::size_type sx = 0; sx != text.size(); ++sx)
        {
            cout << text[sx] << endl;
        }
        return 0;
    }

    却发现程序停在while循环中出不来。调试的过程中发现输入流对象始终有效,即使如入换行符依旧是这样。这让我非常困惑。我想问问如何才能跳出while循环呢?
    2013年8月1日 12:32

答案

  • 您可以这样结束:回车 + Ctrl ^ Z + 回车

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2013年8月2日 6:56
    版主
  • 网上有很多人出现类似的问题。

    你按两次ctrl+z就可以结束循环输入。

    书上说一次就行,我也不清楚为什么要两次。有人说是因为版本低,升级到最高版本就行,我的就是最新版本,问题依旧。

    2013年8月2日 1:19
  • 谢谢你的回答。希望以后有问题还能向你请教。
    2013年8月3日 3:24
  • 谢谢你的回答。问题解决了。希望以后有机会还能向你请教问题。
    2013年8月3日 3:25

全部回复

  • 网上有很多人出现类似的问题。

    你按两次ctrl+z就可以结束循环输入。

    书上说一次就行,我也不清楚为什么要两次。有人说是因为版本低,升级到最高版本就行,我的就是最新版本,问题依旧。

    2013年8月2日 1:19
  • 您可以这样结束:回车 + Ctrl ^ Z + 回车

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2013年8月2日 6:56
    版主
  • 谢谢你的回答。希望以后有问题还能向你请教。
    2013年8月3日 3:24
  • 谢谢你的回答。问题解决了。希望以后有机会还能向你请教问题。
    2013年8月3日 3:25