本篇文章為大家展示了c語(yǔ)言getch()有什么用法,代碼簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
在c語(yǔ)言中,getch()函數(shù)用于從stdio流中讀字符,即從控制臺(tái)讀取一個(gè)字符,但不顯示在屏幕上;語(yǔ)法為:“int getch(void)”,返回讀取的字符。
C語(yǔ)言中g(shù)etch()函數(shù)
功 能: 從stdio流中讀字符,即從控制臺(tái)讀取一個(gè)字符,但不顯示在屏幕上
用 法:
int getchar(void);
這個(gè)函數(shù)是一個(gè)不回顯函數(shù),當(dāng)用戶按下某個(gè)字符時(shí),函數(shù)自動(dòng)讀取,無(wú)需按回車,有的C語(yǔ)言命令行程序會(huì)用到此函數(shù)做游戲,但是這個(gè)函數(shù)并非標(biāo)準(zhǔn)函數(shù),要注意移植性!
Windows下getch()在conio.h
的頭文件中,要使用getch()函數(shù)需要引用conio
頭文件。
代碼:
#include <stdio.h> #include <fcntl.h> #include <stdlib.h> #include <conio.h> #define ESC 0x1B #define ENTER 0x0D #define SPACE 0x20 #define KEY_UP 72 //上 #define KEY_DOWN 80 //下 #define KEY_LEFT 75 //左 #define KEY_RIGHT 77 //右 int KEY_EXIT_STATU = 0 ; int KEY_ENTER_STATU = 0 ; int KEY_SPACE_STATU = 0 ; int KEY_UP_STATU = 0 ; int KEY_DOWN_STATU = 0 ; int KEY_LEFT_STATU = 0 ; int KEY_RIGHT_STATU = 0 ; char ch ; int get_value() ; int main(void) { int i = 0; while(1) { get_value(); } return 0 ; } int get_value() { ch = getch() ; system("cls"); switch(ch) { case ESC : KEY_EXIT_STATU = 1 ; printf("退出\n") ; break ; case ENTER :KEY_ENTER_STATU = 1 ; printf("回車\n") ; break ; case SPACE : KEY_SPACE_STATU = 1 ; printf("空格\n") ; break ; case KEY_UP:case 'w' : KEY_UP_STATU = 1 ; printf("上\n") ; break ; case KEY_DOWN:case 's' : KEY_DOWN_STATU = 1 ; printf("下\n") ; break ; case KEY_LEFT:case 'a' : KEY_LEFT_STATU = 1 ; printf("左\n") ; break ; case KEY_RIGHT:case 'd': KEY_RIGHT_STATU = 1 ; printf("右\n") ; break ; } }
注解:
getchar有一個(gè)int型的返回值.當(dāng)程序調(diào)用getchar時(shí).程序就等著用戶按鍵.用戶輸入的字符被存放在鍵盤緩沖區(qū)中.直到用戶按回車為止(回車字符也放在緩沖區(qū)中).當(dāng)用戶鍵入回車之后,getchar才開始從stdio流中每次讀入一個(gè)字符.
getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCII碼,如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕.
如用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取.
也就是說(shuō),后續(xù)的getchar調(diào)用不會(huì)等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完為后,才等待用戶按鍵.
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個(gè)鍵,getch就立刻返回, getch返回值是用戶輸入的ASCII碼,出錯(cuò)返回-1.輸入的字符不會(huì)回顯在屏幕上.
getch函數(shù)常用于程序調(diào)試中,在調(diào)試時(shí),在關(guān)鍵位置顯示有關(guān)的結(jié)果以待查看,然后用getch函數(shù)暫停程序運(yùn)行,當(dāng)按任意鍵后程序繼續(xù)運(yùn)行.
上述內(nèi)容就是c語(yǔ)言getch()有什么用法,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
當(dāng)前文章:c語(yǔ)言getch()有什么用法-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://chinadenli.net/article36/dhposg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、域名注冊(cè)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容