printf打印不出来?cout却可以
Posted milaiko
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了printf打印不出来?cout却可以相关的知识,希望对你有一定的参考价值。
printf打印不出来,cout却可以?
今天在编写关于网络编程的程序时,printf函数硬是打印不出来,而cout可以,为什么?
大家都知道,服务器为了得到客户端的请求,是会用一个while循环去等待客户端的。而正是因为这个while导致了printf的内容放在缓存区里面没有刷出来。
标准情况是等缓存区满了以后才输出,称为标准输出流。
举个例子
#include<stdio.h>
int main()
int a = 10;
printf("%d", a);
while(1)
a+=1;
//其实为空也行
return 0;
;
执行之后会发现printf的内容没有出来。
有意思的是,当加入了cout,两个输出内容都有了。
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
int a = 10;
printf("%d", a);
cout << a << endl;
while(1)
a+=1;
//其实为空也行
return 0;
;
//out
a
a
那么到底怎样才能是我的printf函数输出呢?
在printf后面假如fllush(stdout);这样就可以立刻刷出来了。
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
int a = 10;
printf("%d", a);
fllush(stdout);
while(1)
a+=1;
//其实为空也行
return 0;
;
以上是关于printf打印不出来?cout却可以的主要内容,如果未能解决你的问题,请参考以下文章
为啥 printf() 可以在内核中工作,但使用 std::cout 不能?