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:23

答案

  • 设置一个出循环的标识

    比如字母'q'

    然后再while判断如果word==‘q’就break


    新浪微博http://weibo.com/xianglitian,欢迎围观

    2013年8月5日 2:36
  • 谢谢回复,这个问题已经解决了。本来发错位置了,应该发到Visual C++中,但是同样感谢你的回答。程序可以通过输入两次Ctrl+Z在按Enter来结束,有兴趣你可以试一试,这和一般书上讲的不一样^0^
    2013年8月5日 11:21

全部回复

  • 设置一个出循环的标识

    比如字母'q'

    然后再while判断如果word==‘q’就break


    新浪微博http://weibo.com/xianglitian,欢迎围观

    2013年8月5日 2:36
  • 谢谢回复,这个问题已经解决了。本来发错位置了,应该发到Visual C++中,但是同样感谢你的回答。程序可以通过输入两次Ctrl+Z在按Enter来结束,有兴趣你可以试一试,这和一般书上讲的不一样^0^
    2013年8月5日 11:21