基於C語言fflush()函數的使用詳解

來源:互聯網
上載者:User

fflush用於清空緩衝流,雖然一般感覺不到,但是預設printf是緩衝輸出的。 fflush(stdout),使stdout清空,就會立刻輸出所有在緩衝區的內容。 fflush(stdout)這個例子可能不太明顯,但對stdin很明顯。 如下語句: int a,c; scanf("%d",&a); c=getchar(); 輸入: 12(斷行符號) 那麼 a=12 ,c= '\n' 而: int a,c; scanf("%d",&a); fflush(stdin); c=getchar(); 輸入: 12(斷行符號) 那麼a=12, c暫時未得到輸入值,還需要再輸入c,因為getchar也是緩衝輸入,'\n'本還在緩衝區,但是被清空了。 另外fflush不能作用於重新導向輸入資料流。fflush(stdin)重新整理標準輸入緩衝區,把輸入緩衝區裡的東西丟棄
fflush(stdout)重新整理標準輸出緩衝區,把輸出緩衝區裡的東西列印到標準輸出裝置上

fflush(stdout);//這句起什麼作用???——fflush()的作用是:如果圓括弧裡是已寫開啟的檔案的指標,則將輸出緩衝區的內容寫入該指標指向的檔案,否則清除輸出緩衝區。這裡的stdout是系統定義的標準輸出檔案指標,預設情況下指螢幕,那就是把緩衝區的內容寫到螢幕上。可是從代碼中看不出緩衝區會有什麼內容,所以它實際上沒有起什麼作用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.