cout是带缓冲的输出吧??

Patricksolo 2011-11-21 07:05:05
缓冲区满,或者是程序终止,遇到换行符都会使缓冲区的内容flush到显示终端上。
可是为什么 cout<<"a";
while(1);
字符“a”会马上输出呢?而不是等到缓冲区满再输出?谁能我帮我解释一下。
...全文
295 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
junlee87 2013-09-15
  • 打赏
  • 举报
回复
自己动手去测试下吧,不同的实现不同。VS2012没有缓冲,gcc有。 http://hi.baidu.com/qclijun/item/ea52ea6d3d03f9127ddecce5
cdsnfresh 2011-11-22
  • 打赏
  • 举报
回复
C++primer里面有,貌似看到过
hastings 2011-11-22
  • 打赏
  • 举报
回复
我依稀记得windows是立刻会显示出来,没有等到缓冲满或其他满足条件才显示出来的情况的,
linux才会缓冲显示,你是windows控制台程序?
only_lonely 2011-11-21
  • 打赏
  • 举报
回复
11楼的猜测很好。
awperpvip 2011-11-21
  • 打赏
  • 举报
回复
这样不出来 编译器跟你急~颠倒一下看他还出来
Patricksolo 2011-11-21
  • 打赏
  • 举报
回复
我知道我要关注什么不该关注什么了,呵呵
我只是觉得11楼的猜测很喜感...
taodm 2011-11-21
  • 打赏
  • 举报
回复
楼主你越迟结贴自己越是容易被误导。
结贴吧,消停点。
yby4769250 2011-11-21
  • 打赏
  • 举报
回复
这个链接可以看到stream的结构图,streambuf应该是每一个stream的一个组成部分
www.cplusplus.com

cout肯定是有缓冲区的,且默认好像是行缓冲,如果没有缓冲区,干嘛需要flush()这个成员函数。
cout<<"a";能马上打印出来,或许能够说明,cout缓冲默认的大小有可能只有1 byte,只是猜测
Patricksolo 2011-11-21
  • 打赏
  • 举报
回复
缓冲区满,或者是程序终止,遇到换行符都会使缓冲区的内容flush到显示终端上
但是并不是只有这几种情况才输出啊。
os或者说某编译器下如何输出,是一个不值得讨论的问题。
因为你不能依赖此内部实现细节,总该自己用上面那几样东西控制它。
别浪费精力吧。
------------------------------------------------------------------------------
谢谢了!
taodm 2011-11-21
  • 打赏
  • 举报
回复
缓冲区满,或者是程序终止,遇到换行符都会使缓冲区的内容flush到显示终端上
但是并不是只有这几种情况才输出啊。
os或者说某编译器下如何输出,是一个不值得讨论的问题。
因为你不能依赖此内部实现细节,总该自己用上面那几样东西控制它。
别浪费精力吧。
Patricksolo 2011-11-21
  • 打赏
  • 举报
回复
LS也是只看了我的标题没看我的具体问题...
liutengfeigo 2011-11-21
  • 打赏
  • 举报
回复
行缓冲.
群狼 2011-11-21
  • 打赏
  • 举报
回复
帮楼主顶一下 我也想知道
Patricksolo 2011-11-21
  • 打赏
  • 举报
回复
是很多地方都讲了,不知道LS有没有看我的具体问题。
zh852 2011-11-21
  • 打赏
  • 举报
回复
google cout flush
google cout 缓冲区
等等 很多书上也讲了
前几天看过 忘记了 lz自己网上找找吧
Patricksolo 2011-11-21
  • 打赏
  • 举报
回复
求各路高人指点
qq120848369 2011-11-21
  • 打赏
  • 举报
回复
no why.

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧