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是系統定義的標准輸出文件指針,默認情況下指屏幕,那就是把緩沖區的內容寫到屏幕上。可是從代碼中看不出緩沖區會有什麼內容,所以它實際上沒有起什麼作用