当前位置 - 養生大全網 - 中醫養生 - 關於c語言函數,看,我想要的結果是eeee在屏幕上停留3秒後消失,為什麽壹運行就什麽都沒有

關於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);