C++之getch(),getche(),getchar()的區別

getchar()
    函數名:getchar()
    頭文件:stdio.h
 功  能:從I/O流中讀字符
 原  型:int getchar(void);
getch()
  函數名:getch()
  頭文件:conio.h
  功  能:從控制檯讀取一個字符,但不顯示在屏幕上
  原  型:int getch(void)
  返回值:讀取的字符
getche()
    函數名:getche()
    頭文件:conio.h
 功  能:從控制檯取字符(帶回顯)
 用  法:int getche(void);
getch()和getche()函數
 這兩個函數都是鍵盤讀入一個字符。
 兩者的區別是: getch()函數不將讀入的字符回顯在顯示屏幕上, 而getche()函數卻將讀入的字符回顯到顯示屏幕上。利用回顯和不回顯的特點, 這兩個函數經常用於交互輸入的過程中完成暫停等功能。
getchar()函數
 getchar()函數是輸入流入一個字符, 並帶回顯。它與前面兩個函數的區別在於: getchar()函數等待輸入直到按回車才結束,  回車前的所有輸入字符都會逐個顯示在屏幕上。但只有第一個字符作爲函數的返回值。getchar不忽略空白符。
getchar有一個int型的返回值.當程序調用getchar時.程序就等着用戶按鍵.用戶輸入的字符被存放在鍵盤緩衝區中.直到用戶按回車爲止(回車字符也放在緩衝區中).
getchar函數的
返回值是用戶輸入的第一個字符的ASCII碼,如出錯返回-1,且將用戶輸入的字符回顯到屏幕.如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待後續getchar調用讀取.也就是說,後續的getchar調用不會等待用戶按鍵,而直接讀取緩衝區中的字符,直到緩衝區中的字符讀完爲後,纔等待用戶按鍵.
getch()函數與getchar()函數的區別
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個鍵,getch就立刻返回,getch返回值是用戶輸入的ASCII碼,出錯返回-1.輸入的字符不會回顯在屏幕上.getch函數常用於程序調試中,在調試時,在關鍵位置顯示有關的結果以待查看,然後用getch函數暫停程序運行,當按任意鍵後程序繼續運行.

putchar、getchar、puts、gets的運用

如果您只想取得使用者輸入的字元,則可以使用getchar(),它直接取得使用者輸入的字元並傳回,如果只想要輸出一個字元,則也可以直接使用putchar(),以下是個簡單的例子:

複製代碼
#include <stdio.h>

int main(void) {
    char c;
    
    printf("請輸入一個字元");
    c = getchar();
    putchar(c);
    putchar('\n');
      
    return 0;
}
複製代碼

如果您輸入了兩個以上的字元,則getchar()會取得第一個字元,並將第二個字元留在緩衝區中,直到您使用getchar()或scanf()再次嘗試取得輸入。

如果想要取得使用者輸入的整個字串,則可以使用gets(),它會取得使用者的輸入字串,不包括按下Enter的換行字元碼,而想要輸出整個字串,也可以直接使用puts(),它在輸出字串後,會直接進行換行,例如

複製代碼
#include <stdio.h>

int main(void) {
    char str[20];
    
    puts("請輸入字串:");
    gets(str);
    puts("輸入的字串為:");
    puts(str);
    
    return 0;
}
複製代碼

getchar():

getchar有一個int型的返回值.當程序調用getchar時.程序就等着用戶按鍵.用戶輸入的字符被存放在鍵盤緩衝區中.直到用戶按回車爲止(回車字符也放在緩衝區中).當用戶鍵入回車之後,getchar纔開始從stdin流中每次讀入一個字符.getchar函數的返回值是用戶輸入的第一個字符的ASCII碼,如出錯返回-1,且將用戶輸入的字符回顯到屏幕.如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待後續getchar調用讀取.也就是說,後續的getchar調用不會等待用戶按鍵,而直接讀取緩衝區中的字符,直到緩衝區中的字符讀完爲後,纔等待用戶按鍵.

  getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個鍵,getch就立刻返回, getch返回值是用戶輸入的ASCII碼,出錯返回-1.輸入的字符不會回顯在屏幕上.getch函數常用於程序調試中,在調試時,在關鍵位置顯示有關的結果以待查看,然後用getch函數暫停程序運行,當按任意鍵後程序繼續運行.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章