关于c语言函数,看,我想要的结果是eeee在屏幕上停留3秒后消失,为什么一运行就什么都没有

原因:printf()函数是行缓冲输出。

printf()不直接把参数发送到屏幕上,而是把参数输出到输出缓冲区里面。输出缓冲区是一块内存区域,一般大小是4096字节,这表示它可以存放4096个字符。

出现以下几种情况之一,输出缓冲区的内容会被发送到标准输出(比如显示器),这叫做刷新缓冲区:

1.行缓冲输出遇到换行符时;

2.需要输入时;

3.缓冲区满时;

4.程序结束时;

5.调用强制刷新输出缓冲区的函数fflush(stdout)时。

虽然不知道清屏函数clrscr()的具体实现,不过它也会导致输出缓冲区被刷新,并且随后清除屏幕上的内容。

如果对上面的内容不理解可以把printf("eeee");分别替换成以下几种形式运行:

1.末尾添加换行符:

printf("eeee\n");

2.调用fflush(stdout),与上面的区别是不会换行:

printf("eeee");

fflush(stdout);

3.在中间插入换行符:

printf("ee\nee");

4.中间插入换行符,并且调用fflush():

printf("e\neee");

fflush(stdout);