C語言如何清除scanf 快取

2021-12-29 21:33:19 字數 630 閱讀 7098

(1)清除快取的函式是:

void safe_flush(file *fp)

(2)然後我們在使用的時候,直接呼叫就可以了:

scanf("%d",&k);

safe_flush(stdin);

這樣就可以清除快取帶來的問題了!

(3)案例演示

a.當我們不清除scanf所帶來的危害的時候:

#include

#include

int main()

我們發現 我們輸入乙個整數的時候,就自動結束程式了,並且將輸入的數值作為快取給了字元c

然後我們清除快取:

#include

#include

//用於清除回車鍵快取的影響

void safe_flush(file *fp)

int main()

當我們輸入整數之後,提示我們輸入字元,顯然消除了快取

scanf清除快取區

為什麼需要清除scanf快取區呢?看乙個例子 int main 以上是乙個很簡單的例子,輸入兩個整型數再列印出來,看起來的確很簡單,也沒啥問題。但是如果第乙個 即a 輸入的不是整型,比如字元或字串呢?這樣的話第二個 即b 就不會讓使用者輸入而直接程式結束了。又如以下程式 int main 或者如下程...

如何清除tomcat快取

用tomcat容器,大家可能會發現這樣的問題,修改jsp檔案後,但用ie開啟 依然是以前的jsp的頁面。出現這種現象的原因主要是tomcat快取的原因。解決辦法如下 在jsp檔案頭加上 其中,第一行的content 0 是表示過期的時間,如果不是0的話,就必須使用gmt的時間格式。第二行表示不用快取...

如何清除tomcat快取

某處 用tomcat容器,大家可能會發現這樣的問題,修改jsp檔案後,但用ie開啟 依然是以前的jsp的頁面。出現這種現象的原因主要是tomcat快取的原因。解決辦法如下 在jsp檔案頭加上 其中,第一行的content 0 是表示過期的時間,如果不是0的話,就必須使用gmt的時間格式。第二行表示不...