c++中cout<<未刷新缓冲区及未遇endl便输出的问题

今天在mac的xcode上直接写cout<<未遇到enl以及未刷新缓冲区数据就不能输出。

记得以前在vs以及g++上都会直接输出,之后查阅的c++输入输出缓冲区刷新的问题,解决了这个矛盾。

缓冲区清空的情况:

1.程序正常结束。作为main返回工作的一部分,将清空所有的输出缓冲区。

2.在一些不确定的时候,缓冲区可能已经满了,在这种情况下,缓冲区将会在写下一个值之前刷新。

3.用操纵符显示地刷新缓冲区,如用endl。

4.在每次输出操作执行完毕后,用unitbuf操纵符设置流的内部状态,从而清空缓冲区。

5.可将输出流与输入流关联起来,在读输入流时将刷新其关联的输出缓冲区。

 

即上述第3点vs和g++在未判断缓冲区已满便清空缓冲区将程序输出。

posted on 2017-06-13 14:55  朱禹宁  阅读(402)  评论(0编辑  收藏  举报