linux编程中printf显示不加换行的缓冲问题

最近在编写linux网络编程时,总是遇到这样的事,程序逻辑没错误,但是程序运行到某个地方就停在那里了,后来才发现在prinrf()中加入换行能正常运行了,如“ printf("123"); ”改成“ printf("123\n"); ”就好了

 

慢慢的找到了一篇博文可以解释这个问题:博文链接:http://blog.csdn.net/ferlansue/article/details/7925522

 

解释如下:

printf会把东西送到缓冲区,而如果缓冲区不刷新到话,你便不会在屏幕上看到东西,而能导致缓冲区刷新到情况有这些:

1 强制刷新 标准输出缓存fflush(stdout);
2,放到缓冲区到内容中包含/n /r ;
3,缓冲区已满;
4,需要从缓冲区拿东西到时候,如执行scanf;
posted @ 2016-08-19 20:51  留下的只是回忆  阅读(1377)  评论(0编辑  收藏  举报