开发者社区> 问答> 正文

将潜在的空iStream打印到ostream中

2

我想把istream变成ostream...我试过这样做:

std::cout << my_istream.rdbuf() << '\n';

但当istream碰巧是空的,它会触发failbit.的.ostream(比照operator<<,重载9),这会导致'\n'以及后来没有印出来的任何东西。

为什么会触发failbit(这样做的理由是什么?)还有其他方法可以打印不认为空流是错误的流吗?

为了避免这个问题,我可以这样做:

char c;
while(my_stream.get(c)) std::cout.put(c);

不过,如果有人能指导我委员会决定触发failbit如果缓冲区为空吗

展开
收起
aqal5zs3gkqgc 2019-12-04 22:28:06 867 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
网络流量异常行为分析系统 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载