如何结束命令行输入。#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;int main()
{
vector<string> col1((istream_iterator<string>(cin)),(istream_iterator<string>()));
sort(col1.begin(),col1.end()); unique_copy(col1.begin(),col1.end(),
ostream_iterator<string>(cout,"\n"));
return 0;
}上面的代码执行后,不知道如何使cin结束。

解决方案 »

  1.   

    vector没有这样的初始化函数吧?
      

  2.   

    楼上两位没看过STL,不用甩 
      

  3.   

    为什么有ctrl+Z呢。而且这样做的话,会有个问题,就是
    若后面有
    int i;
    cin>>i;
    i将不会被录入。
      

  4.   

    抱歉,刚才是我错了.刚看了下vc的stl源码,问题出在这儿:for (; _First != _Last; ++_First, ++_Where)
    _Where = insert(_Where, *_First);这是vector构造时的某块代码,_First即你的istream_iterator<string>(cin)
    _Last即你的istream_iterator<string>(),由于你没指定给_Lasy值,所以operator != 操作始终为真,故陷入死循环.
      

  5.   

    你可以在
    vector <string> col1((istream_iterator <string>(cin)),(istream_iterator <string>())); 
    使用 ctrl-z结束后,调用 cin.clear()重置输入流后面的cin>>i就可以继续使用了