eclipse调试C代码时printf()不能输出到控制台的解决方法
1、问题 【eclipse调试C代码时printf()不能输出到控制台的解决方法】在ecplise下使用CDT开发C/C++程序中,使用debug调试时,到了printf 打印函数,在console窗口中并没有打印出信息来,停止后才会有输出。
2、原因 在debug调试时, eclipse 将输出的内容存放到了输出缓存区中,没有及时的输出到控制台。等到调试结束时,再将所有的信息一并打印出来。
3、解决方法 有两种方法,如下:
1, 在每个printf函数之后加上 fflush 函数进行刷新
printf("Hello world\r\n");
fflush(stdout);
2 在main函数开始设置缓冲类型
int main()
{
setvbuf(stdout,NULL,_IONBF,0);
printf("Hello world\r\n");
//...
}
setvbuf的含义如下:
函数名: setvbuf
用 法: int setvbuf(FILE *stream, char *buf, int type, unsigned size);
type : 期望缓冲区的类型:
_IOFBF(满缓冲):当缓冲区为空时,从流读入数据。或者当缓冲区满时,向流写入数 据。
_IOLBF(行缓冲):每次从流中读入一行数据或向流中写入一行数据。
_IONBF(无缓冲):直接从流中读入数据或直接向流中写入数据,而没有缓冲区。
size : 缓冲区内字节的数量。
推荐阅读
- CVE-2020-16898|CVE-2020-16898 TCP/IP远程代码执行漏洞
- 移动端h5调试方法
- 不废话,代码实践带你掌握|不废话,代码实践带你掌握 强缓存、协商缓存!
- 工具|后天就是七夕节,你准备好了吗(送上几个七夕代码,展示你技能的时候到了!)
- 《机器学习实战》高清中文版PDF英文版PDF+源代码下载
- 霍兰德职业代码对照表
- Hexo代码块前后空白行问题
- 前端代码|前端代码 返回顶部 backToTop
- 11-代码注入
- 代码不规范容易造成的bug