下面一段C++测试代码,whileloop使用eof来跳出循环。strings1;while(cin>>s1){cout
2 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
自己测试我到原因了。因为EOF一直都在cinstream里面,clear()之后每次cin读入都是读入EOF,自然统统出错。google了很久都没有找到flushterminalEOF的方法。有没有建议怎么flushterminalEOF?还是C++根本就没有这个选项,需要继续测试只能另开一个工程?谢谢!update:找到方法了。结合下面两个函数就可以flusheof,然后继续接受输入。cin.clear();clearerr(stdin);//combinewithcin.clear()andclearerr(stdin)works!
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
在win下使用MSYS32上测试没有问题代码跟你一样使用cin.clear();而且官方istream::clear的相关说明有讲到可以设置eofbit为false
添加回答
举报
0/150
提交
取消