ISHEEPI 发表于 2020-2-17 17:04:21

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的 但是确实空格?
                     

superbe 发表于 2020-2-18 14:32:49

_IOFBF是当缓冲区满时才输出,可以把fflush()移到两个fprintf()后面强制刷新缓冲区。
fprintf(stdout,"SHEEP GOD!\n");
fprintf(stdout,"sheep god\n");
fflush(stdout);
页: [1]
查看完整版本: IO缓冲区 setvbuf 与 fflush