我如何跳过(getline(cin,tmp))?

CCC*_*CCC 3 c++ io stl

我正在阅读'通用编程和stl'

在第1章中,这是一个这样的样本,

int main()
{
    vector<string> v;
    string tmp;

    while(getline(cin,tmp))  //problem is here, it keep asking me to input value
        v.push_back(tmp);

    sort(v.begin(), v.end());
    copy(v.begin(), v.end(), ostream_iterator<string>(cout,"\n"));

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

我如何摆脱困境,它一直要求我输入价值,没有结局....

Ben*_*oit 7

发送文件结束符:您可以使用CTRL-Z返回(Windows)或CTRL-D(Unix终端).然后,getline将返回false,因为没有更多内容可供阅读stdin.

另一种方法是:将另一个程序的输出管道输入到这个程序中.

  • `cin`!=`stdin`,即使它们指向相同的低级句柄/描述符/等等. (3认同)

小智 5

您的程序要求输入,直到它达到EOF.使用CtrlD类UNIX系统或CtrlZWindows上发送EOF指示输入结束.