博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言printf缓冲问题
阅读量:6377 次
发布时间:2019-06-23

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

起步

20171023101458.png

标准输出被滞后了. 不同编译器出来的结果可能不一样. 我在windows平台的 VC++6.0 上是 121212.

分析

标准输出和标准出错的缓冲机制不同,标准出错不缓冲,标准输出有缓冲.

什么情况下会刷新缓冲区?

  • 程序结束时调用 exit(0) .
  • 遇到 \n , \r 时会刷新缓冲区.
  • 手动刷新 fflush .
  • 缓冲区满时自动刷新.

附录

示例代码:

#include 
int main(int argc, char const *argv[]){ int i; for (i = 0; i < 3; ++i) { printf("1"); fprintf(stderr, "2"); }}

找到了让 windows 平台也使用输出缓冲的方式了:

#include 
char buf[512]; int main(int argc, char const *argv[]){ setvbuf(stdout, buf, _IOLBF, 512); int i; for (i = 0; i < 3; ++i) { printf("1"); fprintf(stderr, "2"); }}

转载地址:http://ifxqa.baihongyu.com/

你可能感兴趣的文章
Java基础语法之Java初识
查看>>
Java Socket编程基础知识
查看>>
jenkins忘记管理员账号密码的补救方法-转
查看>>
jQuery基础三
查看>>
已Access为支持,书写一个C#写入的记录的方案
查看>>
JavaScript自适应调整文字大小
查看>>
实验报告一:网络侦查与网络扫描
查看>>
.net 接入微信商户企业支付API 问题总结
查看>>
防止SQL注入
查看>>
java中的动态代理(三)
查看>>
Ue4的UE_LOG
查看>>
自绘制HT For Web ComboBox下拉框组件
查看>>
基于 HTML5 WebGL 的低碳工业园区监控系统
查看>>
小机房的树CODEVS 2370
查看>>
得到一个范围的随机数函数
查看>>
js返回上一页并刷新、返回上一页、自动刷新页面
查看>>
复数类完整实现 + 四则运算符重载
查看>>
UVA 699 The Falling Leaves 数据结构
查看>>
简单搜索专题的笔记
查看>>
ASP汉字转拼音函数的方法
查看>>