繁体   English   中英

在c ++中使用getline()时如何确定它是否是EOF?

[英]How to determine whether it is EOF when using getline() in c++?

string s;
getline(cin,s);

while (HOW TO WRITE IT HERE?)
{
    inputs.push_back(s);    
    getline(cin,s);
}

由于我今天懒得给出一个完整的答案,我只想在Freenode的## c ++中粘贴真正有用的机器人说:

使用“while(!stream.eof()){}”几乎肯定是错误的。 使用流的状态作为测试值:while(std :: getline(stream,str)){}。 有关进一步说明,请参阅http://www.parashift.com/c++-faq-lite/input-output.html#faq-15.5

换句话说,你的代码应该是

string s;

while (getline(cin, s))
{
    inputs.push_back(s);    
}
string s;
getline(cin,s);

while (!cin.eof)
{
        inputs.push_back(s);    
        getline(cin,s);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM