1. 程式人生 > >檔案操作——清空緩衝區

檔案操作——清空緩衝區

   在進行輸入輸出操作或者檔案讀寫時,由於涉及到緩衝區的使用,可能遇到一些問題。

   例如,scanf()函式用於從stdin輸入資訊,在從標準輸入緩衝區讀取資訊時,往往以'\n'作為結束輸入的標誌,但是換行符'\n'仍然殘留在緩衝區中,下次再次從標準輸入讀取資訊時,殘留的換行符'\n'會被當做有效資訊讀取,即,上一次的輸入影響了下一次的輸入。

   再例如,通過 printf()函式向標準輸出列印資訊時,待輸出的資訊可能遲遲沒有顯示在標準輸出上,因為資訊還保留在標準輸出緩衝區中。有時候向檔案中寫入的資訊無法完整儲存,可能也是由於緩衝區中的內容沒有及時重新整理到檔案中。

   在遇到這些問題時,可以通過清空緩衝區的方法解決。

   C語言中用於清空緩衝區的函式是fflush(),使用時需要包含標頭檔案<stdio.h>,函式原形如下:

   int fflush(FILE * stream);

   如果stream是輸出檔案,則fflush()的作用是與之相關聯的輸出緩衝區中的檔案立即寫入該檔案;如果stream是輸入檔案,則fflush()的作用是清空與之相關聯的輸入緩衝區中的內容。