關於學習getchar 和scanf 時問題

2021-07-26 02:38:17 字數 842 閱讀 4829

一、getchar()函式:

getchar()函式的原型為 int getchar(void):該函式不帶形參,返回值為int型,成功時,返回值為字元的ascii碼,出錯是為-1.

getchar()函式只對字元起作用,在stdio.h中定義,其實是個巨集定義函式,是getc(stdin)的巨集定義。

如果使用者在按回車之前,輸入了多個字元,除第乙個字元外其他保留在緩衝區中,等待後續函式呼叫讀取。

後續的getchar()呼叫不用等待使用者按鍵,而是直接讀取緩衝中的字元,直當緩衝區的字元讀取完,才等待使用者的按鍵輸入。

【例項】下面的示例演示了getchar()函式的使用,使用該函式獲取標準輸入控制台中的字元,直到按回檔案結束結尾eof(-1),**如下。

#include int main(int argc, char const *argv)

} return 0;

}

二、scanf()函式:

函式原型為:int scanf(char * .....),返回成功讀入的專案個數,如果沒有讀取任何專案,(即當它期望乙個數字而您卻鍵入了乙個非數字字串是就會發生這樣的情況),函式返回0。

利用返回值可用來檢測和處理不匹配的輸入。

在char ch; scanf("%c",&ch);中若開始輸入空格,會自動忽略,若輸入a而非乙個數字,a不會被輸入。

while(scanf("%d",&a)!=1)
當輸入不是乙個整數時,退出迴圈。

注:當混合使用scanf和getchar函式時,呼叫getchar()之前scanf()恰好在輸入中留下換行符時,將產生問題。

C語言基礎 函式getchar和函式scanf小結

最近在看c程式時候產生的疑問,現在總結如下 程式所用軟體是vc getchar 函式的用法 特點 可以從鍵盤輸入多個字元,並帶回顯 就是在回車前,所有的輸入字元都會逐個顯示在螢幕上 並且等到按回車的時候才結束。雖然可以輸入多個字元,但是getchar函式只能讀入乙個字元。其它多的字元會保留在鍵盤快取...

關於getline和getchar注意的細節

關於getline和getchar注意的細節 link include include include using namespace std int main void system pause return 0 如果不加getchar 再輸入n時會有輸出常量。原因是cin輸入後,會存放在緩衝區,...

關於getchar的理解

最近在看k r的c語言程式設計,看到有個地方很不是理解,查閱了較多的資料後才恍然大悟,記錄一下先。程式是比較常見的從控制台獲得一行,並返回這行的長度。程式如下 int getline char s,int lim 開始對getchar這個函式不是很理解,為什麼每次迴圈都讀取乙個 char 既然我是個...