C語言丨getch(),getche()和getchar()的區別


關於C語言中的getch(),getchar() getche()函數肯定十分困擾大家,今天將他們整理和大家一起分享.

1、getchar()

函數名:getchar()

頭文件:stdio.h

功  能:讀取控制台輸入的字符,並保存在鍵盤緩沖區中。直到用戶按回車為止(回車字符也放在緩沖區中)。

原  型:int getchar(void);

例如:

#include <stdio.h>

int main(void)

{

    printf("%c\n", getchar());

    return 0;

}

當輸入一個字符並按回車時,該字符被存入緩沖區中,printf函數再把緩沖區中的該字符輸出。如輸入輸出實例:

d

d

2、getch()

函數名:getch()

頭文件:conio.h

功  能:從控制台讀取一個字符,但不顯示在屏幕上(不帶回顯)。

原  型:int getch(void)

返回值:讀取的字符

例如:

#include <stdio.h>

#include <conio.h>

int main(void)

{

    printf("%c\n", getch());

    return 0;

}

輸入輸出實例:

d

輸入d,不會顯示d,當調用printf函數后才輸出d。控制台讀取一個字符,但不顯示在屏幕上(不帶回顯)。

3、getche()

函數名:getche()

頭文件:conio.h

功  能:輸入后立即從控制台取字符,不以回車為結束,且立刻顯示在屏幕上(帶回顯)。

用  法:int getche(void);

例如:

#include

#include <conio.h>

int main(void)

{

    printf("%c\n", getche());

    return 0;

}

該函數的輸入輸出示例:

dd

也就是說,輸入d,直接就輸出d,不需要按回車鍵,即該函數不帶緩沖區,且輸入有回顯。回顯的意思就是在控制台顯示輸入的字符。

注意: getch()和getche()函數

這兩個函數都是從鍵盤上讀入一個字符。其調用格式為:

getch();

getche();

兩者的區別是: getch()函數不將讀入的字符回顯在顯示屏幕上, 而getche()函數卻將讀入的字符回顯到顯示屏幕上。利用回顯和不回顯的特點, 這兩個函數經常用於交互輸入的過程中完成暫停等功能。


 

總結

相同點:

  1.都不需要參數;

  2.功能一致:從輸入設備獲取一個字符並返回這個字符;

不同點:

  1.getchar()先將輸入的字符保存在緩沖區,然后再從緩沖區讀取這個字符,是間接讀取;

  2.getche()和getch()不需要將輸入的字符保存在緩沖區,而是即輸即取,也就是說,一輸入一個字符,它立即直接讀取;

  3.直觀一些:

    #include <stdio.h>

    main()

    {

        int a,b,c;

        a=getchar();

        b=getche();

        c=getch();

     }

      1.執行到getchar()函數時,光標閃動,等待輸入字符:輸入字符后無變化,需要按回車鍵, 按回車鍵后,getchar讀取了這個字符,並將其賦值給變量a。

       2.執行到getche()函數時,光標閃動,等待輸入字符:輸入字符后,不需按回車鍵,在輸入后,getche立即讀入並賦值給b。

       3.執行到getch()函數時,光標閃動,等待輸入字符:輸入字符,並不能看到你輸入的字符,屏幕仍是; 但在輸入后瞬間,getch()函數就讀取並賦值給了c。

以上就是getchar()、getche()、getch()的區別,如有錯誤歡迎指出!


 

如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!
C語言C++學習企鵝圈子】,分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!

編程學習書籍:


 

編程學習視頻:


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM