IO缓冲区 setvbuf 与 fflush
#include<stdio.h>#include<string.h>
int main()
{ char buff;
memset(buff,'\0',sizeof(buff));
setvbuf(stdout,buff,_IOFBF,1024);
fprintf(stdout,"SHEEP GOD!\n");
fflush(stdout);
fprintf(stdout,"sheep god\n");
getwchar();
return 0;
}
为什么我这里的结果是这样:
SHEEP GOD!//直接打出 没问题
2
请按任意键继续. . .//这里本来应该打出sheep god的 但是确实空格?
_IOFBF是当缓冲区满时才输出,可以把fflush()移到两个fprintf()后面强制刷新缓冲区。
fprintf(stdout,"SHEEP GOD!\n");
fprintf(stdout,"sheep god\n");
fflush(stdout);
页:
[1]