printf的输出问题写一段简单的代码#include stdio.h#include unistd.hint main(){while(1){printf(.
printf的输出问题
写一段简单的代码
#include "stdio.h"
#include "unistd.h"
int main()
{
while(1)
{
printf(".");
fprintf(stderr, "*");
usleep(10000);//us
}
return 0;
}
输出跟我的理解差距很大,为啥我的printf没有一次输出呢?谁能给解释下吗?
输出:
C printf
****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
[解决办法]
printf中没有\n 没有刷新缓冲区的缘故吧
[解决办法]
应该是输出缓冲区吧,printf的内容会放置到输出缓冲区内,只有遇到缓冲区满,或强制刷新,或遇到'\n'才会把输出缓冲区内的内容打印在屏幕上。可以加个fflush();强制刷新输出缓冲区
[解决办法]
ISO C requires the following buffering characteristics.
Standard input and standard output are fully buffered, if and only if they do not refer to an interactive device.
Standard error is never fully buffered.
[解决办法]
输出缓冲区未刷新的缘故,可以用fflush强制刷新:
#include "stdio.h"
#include "unistd.h"
int main()
{
while(1)
{
printf(".");
fflush(stdout);
fprintf(stderr, "*");
fflush(stdout);
usleep(10000);//us
}
return 0;
}
[解决办法]
在每个最后不带\n的printf后面加fflush(stdout);
