在使用c語言程式設計時,常用到的字元錄入函式有getchar(),getch()和getche()。這三個函式的基本功能類似,不過有稍許區別,基本資訊如下表所示。
函式名稱
函式原型
標頭檔案返回值
說明getchar
int getchar(void)
stdio.h
返回使用者輸入的第乙個字元的ascii碼
按回車結束輸入,從輸入緩衝中讀取字元,不忽略空白
getch
int getch(void)
conio.h
返回使用者輸入的字元的ascii碼
從鍵盤上讀入乙個字元,輸入的字元不回顯在螢幕上
getche
int getche(void)
conio.h
返回使用者輸入的字元的ascii碼
從鍵盤上讀入乙個字元,輸入的字元回顯在螢幕上
可以將getch()和getche()函式分為一組,這兩者之間的區別在於是否回顯字元到螢幕上。其共同點在於直接從鍵盤上讀取字元,不像getchar()從緩衝區中讀取字元。使用getche()函式時按下字元鍵,在螢幕上立即顯示乙個字元。
而若使用getchar()函式,則需要在輸入完成後手動按下回車,並且回車鍵也會存到輸入緩衝區中。舉個栗子:若使用getchar()函式輸入「abcd」之後再按下回車鍵。那麼緩衝區中就有「abcd\n」五個字元,而getchar()函式只返回字元『a』的ascii碼,那麼最後緩衝區中就還有「bcde」。因此不論後面是否還呼叫getchar()函式,下一次讀取的字元一定為『b』。
嘗試下面的**進行深入了解。
#include #include #include using namespace std;
int main()
{ char ch;
ch = getchar();
cout《輸入:19回車2體驗一下應該就明白了。
C語言字串讀入函式筆記
gets str 函式和scanf s str 區別 二者都是從終端讀入字串。功能為 1 gets功能為讀入一行,並將換行符轉換為字串結束符。2 scanf s s 讀入時,遇到空白字元,包括空格,製表符,換行符時均會停止輸入。從功能上可以看出不同之處 1 終止條件不同。gets只有遇到 n時才會結...
字串讀入問題 C語言
字串讀入3種形式 scanf gets getchar scanf不可以讀入空格,讀入空格即可停止,算乙個字元陣列 不含空格 可以應用於2個句子間有很多空格,但2個句子本身沒有空格 gets可以讀入空格,可以讀入含有空格的句子的時候,getchar是讀入乙個字元,可以讀入空格,經常用於處理讀掉空格。...
C 字串讀入函式(gets getline)
對於字串的讀入,我們有scanf和cin這兩個最為經典的函式,但是我們發現這兩個函式如果遇到空格或換行就結束了。可有時我們希望讀到空格時不要結束,讀到回車在結束。甚至有時我們希望連遇到空格也不結束,直到遇到乙個指定的字元時才結束本次讀入。而cstdio和iostream標頭檔案為了解決這個問題分別提...