最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言清除scanf()緩存的案例講解

 更新時間:2019年03月29日 09:58:52   作者:徐劉根  
今天小編就為大家分享一篇關于C語言清除scanf()緩存的案例講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

又重新過一遍C語言,感覺每次重學C語言都有不同的感受,遇到了一個問題,就是scanf()這個問題,其實細究起來,也有很多可以值得深挖的,實際上每次細細的挖掘的話,都是對C語言的更透徹的認識.

那么下面我就對scanf()中清除輸入緩沖區(qū)的方法講解:

應用場景:我們使用多個scanf()的時候,如果輸入緩沖區(qū)還有數(shù)據(jù)的話,那么scanf()就不會詢問用戶輸入,而是直接就將輸入緩沖區(qū)的內容拿出來用了,這就導致了前面的錯誤影響到后面的內容,為了隔離這種問題,

總的思想:通過各種方法將輸入緩沖區(qū)的內容讀出來.

(1)清除緩存的函數(shù)是:

void safe_flush(FILE *fp)
{
 int ch;
 while( (ch = fgetc(fp)) != EOF && ch != '\n' );     
}

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

scanf("%d",&k);
safe_flush(stdin);

這樣就可以清除緩存帶來的問題了!

(3)案例演示

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

#include<stdio.h>
#include<string.h>
int main()
{
 int k;
 printf("請輸入你的秘鑰:(整數(shù))");
 scanf("%d",&k);
 char c;
 printf("請輸入一個字符:");
 c = getchar();
 printf("%d ",k);
 printf("%c ",c);
}

我們發(fā)現(xiàn) 我們輸入一個整數(shù)的時候,就自動結束程序了,并且將輸入的數(shù)值作為緩存給了字符c

然后我們清除緩存:

#include<stdio.h>
#include<string.h>
//用于清除回車鍵緩存的影響
void safe_flush(FILE *fp)
{
 int ch;
 while( (ch = fgetc(fp)) != EOF && ch != '\n' );
}
int main()
{
 int k;
 printf("請輸入你的秘鑰:(整數(shù))");
 scanf("%d",&k);
 safe_flush(stdin);
 char c;
 printf("請輸入一個字符:");
 c = getchar();
 printf("%d ",k);
 printf("%c ",c);
}

當我們輸入整數(shù)之后,提示我們輸入字符,顯然消除了緩存

ok!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • C++中的多態(tài)詳談

    C++中的多態(tài)詳談

    多態(tài)通俗來說就是多種形態(tài),本文通過實例代碼給大家介紹C++中的多態(tài)定義及實現(xiàn),通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-05-05
  • C++之try catch 異常處理入門實例

    C++之try catch 異常處理入門實例

    我們通常希望自己編寫的程序能夠在異常的情況下也能作出相應的處理,而不至于程序莫名其妙地中斷或者中止運行了。在設計程序時應充分考慮各種異常情況,并加以處理
    2018-01-01
  • 詳解C語言中雙向循環(huán)鏈表的實現(xiàn)

    詳解C語言中雙向循環(huán)鏈表的實現(xiàn)

    雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數(shù)據(jù)結點中都有兩個指針,分別指向直接后繼和直接前驅。本文將用C語言實現(xiàn)雙向循環(huán)鏈表,需要的可以參考一下
    2022-06-06
  • C語言實現(xiàn)獲取文件大小與創(chuàng)建修改時間

    C語言實現(xiàn)獲取文件大小與創(chuàng)建修改時間

    這篇文章主要為大家詳細介紹了如何通過C語言實現(xiàn)獲取文件大小、創(chuàng)建時間與修改時間,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11
  • c++實現(xiàn)解析zip文件的示例代碼

    c++實現(xiàn)解析zip文件的示例代碼

    這篇文章主要為大家詳細介紹了如何利用c++實現(xiàn)解析zip文件,并對流式文件pptx內容的修改,文中的示例代碼講解詳細,有需要的小伙伴可以參考一下
    2023-12-12
  • QT使用QFile進行文件操作

    QT使用QFile進行文件操作

    本文主要介紹了QT使用QFile進行文件操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • C/C++實現(xiàn)內存泄漏檢測詳解

    C/C++實現(xiàn)內存泄漏檢測詳解

    這篇文章主要為大家詳細介紹了c++進行內存泄漏檢測的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下,希望能夠給你帶來幫助
    2023-02-02
  • C語言實現(xiàn)實時鐘表

    C語言實現(xiàn)實時鐘表

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)實時鐘表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語言指針超詳細講解下篇

    C語言指針超詳細講解下篇

    指針提供了對地址操作的一種方法,因此,使用指針可使得?C?語言能夠更高效地實現(xiàn)對計算機底層硬件的操作。另外,通過指針可以更便捷地操作數(shù)組。在一定意義上可以說,指針是?C?語言的精髓
    2022-04-04
  • Qt編寫地圖實現(xiàn)閃爍點圖的示例代碼

    Qt編寫地圖實現(xiàn)閃爍點圖的示例代碼

    閃爍點圖的核心有三個要素,城市的名稱、城市的經(jīng)緯度、對應值的大小,當值越大閃爍點也就越大,本文就來實現(xiàn)一下地圖閃爍點圖,具有一定的參考價值,感興趣的可以了解一下
    2021-12-12

最新評論

积石山| 汶上县| 龙川县| 博野县| 鹿泉市| 青岛市| 哈尔滨市| 永修县| 深水埗区| 胶州市| 宜宾县| 阜平县| 瑞金市| 通山县| 万盛区| 玉树县| 大同市| 达日县| 五台县| 张家口市| 浦县| 邵阳市| 永胜县| 大悟县| 鹤壁市| 凤城市| 满洲里市| 佳木斯市| 隆尧县| 都匀市| 乐清市| 桃园县| 邹城市| 周口市| 福清市| 皮山县| 桐柏县| 乐安县| 鸡东县| 凤翔县| 黄山市|