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

本文共 1136 字,大约阅读时间需要 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;}

正确结果

程序用到知识

 

 

 

转载于:https://www.cnblogs.com/kaituorensheng/p/3240775.html

你可能感兴趣的文章
javascript之Style物
查看>>
JSON跨域解决方案收集
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
[bzoj1004] [HNOI2008] Cards
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>
无锁编程笔记
查看>>
jquery mobile
查看>>
如何在vue单页应用中使用百度地图
查看>>
Springboot使用步骤
查看>>
Spring属性注入
查看>>
Springboot-配置文件
查看>>
Springboot-日志框架
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>
spring与quartz整合
查看>>