cin直接向量<int>,当没有更多数据时断开循环

use*_*676 2 c++ vector cin

下面的代码运行并将输入存储在向量中,但它会无限循环地监听输入.目的是ints从一行输入中取一个字符串,用空格分隔,并将它们存储在一个向量中.

int main(int argc, char ** argv){
    int input;
    vector<int> intVector;
    while (cin >> input) 
        intVector.push_back(input);
    //print vector contents
    copy(intVector.begin(), intVector.end(), ostream_iterator<char>(cout, " ")); cout << "\n";

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想以某种方式在while循环中添加一个简单的额外条件来检查行的结尾,这样它就不会无限期地继续监听.cin.oef这里没用.我已经尝试了这个以及其他几件事.

我可以添加一些干净,简洁,优雅的东西来解决这个问题吗?

sba*_*bbi 8

关于什么

vector<int> intVector( std::istream_iterator<int>( std::cin ), 
                       std::istream_iterator<int>() );
Run Code Online (Sandbox Code Playgroud)