getchar 是stdio.h中的庫函數(shù),它的作用是從stdin流中讀入一個(gè)字符,也就是說 ,如果stdin有數(shù)據(jù)的話不用輸入就可以直接讀取了。而getch()和getche()是conio.h中的庫函數(shù),它的作用是從鍵盤接收字符。
getch() 實(shí)際是一個(gè)輸入命令,作用是從鍵盤接收一個(gè)字符,而且并不把這個(gè)字符顯示出來,就是說,你按了一個(gè)鍵后它并不在屏幕上顯示你按的什么,而繼續(xù)運(yùn)行后面的代碼,所以我們在C++中可以用它來實(shí)現(xiàn)“按任意鍵繼續(xù)”的效果,即程序中遇到getch();這行語句,它就會(huì)把程序暫停下來,等你按任意鍵,它接收了這個(gè)字符鍵后再繼續(xù)執(zhí)行后面的代碼。
你也許會(huì)問,為什么我們在C++中就沒有在程序的末尾加上getch(),解釋是,軟件總是不斷更新的,不好的地方當(dāng)然要進(jìn)行改正,getch()加在程序末尾,它又不賦值給任何變量,所以它在這個(gè)地方完全是垃圾代碼,與程序無關(guān)。C++中考慮到這一點(diǎn),于是在每次程序運(yùn)行完了并不退出,而是自動(dòng)把屏幕停下來,并顯示“press any key...”叫你按任意鍵退出,這就好比C++在它的環(huán)境中運(yùn)行程序,在程序的末尾自動(dòng)加上了一行g(shù)etch();語句,并且在這行語句前還添加了一行輸出語句cout<<"press any key...";來提示你程序結(jié)束了,按任意鍵繼續(xù)。
getche() 和getch()很相似,它也需要引入頭文件conio.h,那它們之間的區(qū)別又在哪里呢?不同之處就在于getch()無返回顯示,getche()有返回顯示。
新聞熱點(diǎn)
疑難解答
圖片精選