檔案操作——清空緩衝區
阿新 • • 發佈:2019-02-17
在進行輸入輸出操作或者檔案讀寫時,由於涉及到緩衝區的使用,可能遇到一些問題。
例如,scanf()
函式用於從stdin
輸入資訊,在從標準輸入緩衝區讀取資訊時,往往以'\n'
作為結束輸入的標誌,但是換行符'\n'
仍然殘留在緩衝區中,下次再次從標準輸入讀取資訊時,殘留的換行符'\n'
會被當做有效資訊讀取,即,上一次的輸入影響了下一次的輸入。
再例如,通過 printf()
函式向標準輸出列印資訊時,待輸出的資訊可能遲遲沒有顯示在標準輸出上,因為資訊還保留在標準輸出緩衝區中。有時候向檔案中寫入的資訊無法完整儲存,可能也是由於緩衝區中的內容沒有及時重新整理到檔案中。
在遇到這些問題時,可以通過清空緩衝區的方法解決。
C語言中用於清空緩衝區的函式是fflush()
,使用時需要包含標頭檔案<stdio.h>
,函式原形如下:
int fflush(FILE * stream);
如果stream
是輸出檔案,則fflush()
的作用是與之相關聯的輸出緩衝區中的檔案立即寫入該檔案;如果stream
是輸入檔案,則fflush()
的作用是清空與之相關聯的輸入緩衝區中的內容。