博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【c++】字符串流输出恢复状态问题
阅读量:6336 次
发布时间:2019-06-22

本文共 1165 字,大约阅读时间需要 3 分钟。

缘起

#include 
#include
using namespace std;int main(){ istringstream iss; string str1, str2, str3, str4, str5, str6; iss.str("I love you"); iss >> str1 >> str2 >> str3; cout << str1 << " " << str2 << " "<< str3 << endl; iss.str("I hate you"); iss >> str4 >> str5 >> str6; cout << str4 << " " << str5 << " "<< str6 << endl;}

期待输出

      

可以结果是

     

问题

    没有输出“I  hate you"。究竟是什么原因导致 流没有输出到字符串中?

一番折腾知道,此时流的eof为1(已经达到结束符),此时必须用函数clear()把所有的状态值设为有效状态值。经过修改程序如下:

#include 
#include
using namespace std;int main(){ istringstream iss; string str1, str2, str3, str4, str5, str6; iss.str("I love you"); cout << "before" << iss.str() << endl; iss >> str1 >> str2 >> str3; cout << str1 << " " << str2 << " "<< str3 << endl; cout << "eofbit:" << iss.eof() << endl; iss.clear(); cout << "eofbit:" << iss.eof() << endl; iss.str("I hate you"); cout << "after:" << iss.str() << endl; iss >> str4 >> str5 >> str6; cout << str4 << " " << str5 << " "<< str6 << endl;}

正确结果

程序用到知识

 

 

本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/3240775.html,如需转载请自行联系原作者

你可能感兴趣的文章
《iOS组件与框架——iOS SDK高级特性剖析》——第2章,第2.7节获取线路
查看>>
Spring中 @Autowired标签与 @Resource标签 的区别
查看>>
人工智能凭什么毁灭人类
查看>>
[LeetCode]--349. Intersection of Two Arrays
查看>>
tomcat启动报错
查看>>
mongorocks引擎原理解析
查看>>
用Swift实现一款天气预报APP(一)
查看>>
oracle11g R2 RAC卸载grid
查看>>
ES6 结构和扩展运算符
查看>>
王利阳:电商大促 决战6.18
查看>>
kafka消息传输的事务定义
查看>>
实现LNMMP
查看>>
mysql的pid文件出现问题
查看>>
计算rem单位
查看>>
第七章 大网高级 ASA
查看>>
rsync+inotify触发式远程同步
查看>>
优秀设计师应当知道的几大UI设计原则(一)
查看>>
mongodb高级查询
查看>>
struts2.1 struts.devMode BUG解决方案
查看>>
日本法院裁定三星诉苹果专利侵权案败诉
查看>>