C語言中“fflush stdin ”的作用是什麼

清除標準輸入裝置(一般是鍵盤)的快取。
scanf()函式接收輸入資料時,遇以下情況結束一個資料的輸入:(不是結束該scanf函式,scanf函式僅在每一個資料域均有資料,並按回車後結束)。
① 遇空格、“回車”、“跳格”鍵。
② 遇寬度結束。
③ 遇非法輸入。
鍵盤緩衝區就可能有殘餘資訊問題。
scanf()函式應該只是掃描stdin流,這個殘存資訊是在stdin中
解決就要在scanf()函式之後加個fflush(stdin)。
flush(stdin)重新整理標準輸入緩衝區,把輸入緩衝區裡的東西丟棄
fflush(stdout)重新整理標準輸出緩衝區,把輸出緩衝區裡的東西列印到標準輸出裝置上。

清除標準輸入裝置(一般是鍵盤)的快取。往往適用於截獲輸入特殊值,例如每次讀取一個輸入的字元,但是如果你輸完一個字元後敲了回車,回車是一個特殊的鍵,會產生2個字元,因此程式會認為你輸入了3個字元,此時可以用讀取一個字元後用這個函式清除鍵盤快取,從而清除回車的影響。
c語言fflush(stdin);的用法

清除檔案緩衝區,檔案以寫方式開啟時將緩衝區內容寫入檔案 沒有你後面說的那個。 例子: #include #include #include #include void flush(file *stream); int main(void) void flush(file *stream)

kankanwqfqwefewf
c語言fflush(stdin)函式是什麼意思,在什麼情況下用它

這是用來清除輸入後的快取資料的,比如你寫個程式只允許輸入數字,然後就可以迴圈,如果你這時輸入了一個字元,這時一個字元就是非法得了,一直保留在快取空間裡,如果不處理掉可能會照成死迴圈…這時你就可以用這個**清除快取…

1.fflush函式包含在stdio.h標頭檔案中,用來強制將緩衝區中的內容寫入檔案。
2.函式原型:int
fflush(file
*stream)
;3.函式功能:清除一個流,即清除檔案緩衝區,當檔案以寫方式開啟時,將緩衝區內容寫入檔案。也就是說,對於ansi
c規定的是緩衝檔案系統,函式fflush用於將緩衝區的內容輸出到檔案中去。
4.函式返回值:如果成功重新整理,fflush返回0。指定的流沒有緩衝區或者只讀開啟時也返回0值。返回eof指出一個錯誤。
5.下面給出一個具體的例子來演示該函式使用的方法:
#include
#include
intmain(void)
charch=
‘c’;
inti;
for(i=0;
i
i++)
fclose(fp);
return0;}
注意:如果在寫完檔案後呼叫函式fclose關閉該檔案,同樣可以達到將緩衝區的內容寫到檔案中的目的,但是那樣系統開銷較大。

fflush(stdin)重新整理標準輸入緩衝區,把輸入緩衝區裡的東西丟棄
fflush(stdout)重新整理標註輸出緩衝區,把輸出緩衝區裡的東西列印到標準輸出裝置上

清除檔案緩衝區,檔案以寫方式開啟時將緩衝區內容寫入檔案沒有你後面說的那個。
例子:#include
#include
#include
#include
void flush(file *stream);
int main(void)
void flush(file *stream)
c語言:fflush(stdin)中的stdin是什麼意思?

fflush(stdin)中stdin是標準輸入的意思。
fflush(stdin)的作用是清空標準輸入緩衝區。
舉例說明如下:
int?a;
char?c;
scanf(“%d”,&a);
fflush(stdin);???//?清空輸入緩衝區scanf(“%c”,&c);
如果不加fflush(stdin)的話,第一次輸入的回車可能會被第二次輸入操作所捕捉,也即變數c的值將會是回車符,並不會接收使用者輸入的字元。

stdin是標準輸入流, 本質上跟檔案流的概念差不多, 只不過檔案流是你自己用fopen建立的, stdin是系統幫你內建好的, 你從鍵盤輸入的字元都被放進stdin, 用scanf等函式就可以從stdin裡面取出字元.
對比一下就是, 我們用的scanf就是對stdin在操作, 而fscanf是對檔案流操作
fflush(stdin)就是把輸入流清空

http://zhidao.baidu.com/question/61464989.html?si=1&wtp=wk
參考這裡