国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

linux之C編程學(xué)習(xí)——getchar()和getch()

2024-06-28 13:22:26
字體:
供稿:網(wǎng)友
linux之C編程學(xué)習(xí)——getchar()和getch()

getchar

函數(shù)名: getchar

功 能: 從stdin流中讀字符

用 法: int getchar(void);

注解:

  getchar有一個(gè)int型的返回值,當(dāng)程序調(diào)用getchar時(shí)程序就等著用戶按鍵,用戶輸入的字符被存放在鍵盤緩沖區(qū)中直到用戶按回車為止(回車字符也放在緩沖區(qū)中)。當(dāng)用戶鍵入回車之后,getchar才開始從stdin流中每次讀入一個(gè)字符getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCII碼,如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕。如用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。也就是說,后續(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)行。

demo:

#include <stdio.h>int main(void){  int c;  /* Note that getchar reads from stdin and    is line buffered; this means it will    not return until you PRess ENTER. */  while ((c = getchar()) != '/n')  printf("%c", c);  return 0;}

注:可以利用getchar()函數(shù)讓程序調(diào)試運(yùn)行結(jié)束后等待編程者按下鍵盤才返回編輯界面,用法:在主函數(shù)結(jié)尾,return 0;之前加上getchar();即可。

getch

所在頭文件:conio.h

函數(shù)用途:從控制臺讀取一個(gè)字符

函數(shù)原型:int getch(void)

返回值:讀取的字符

例如:

char ch;或int ch;

getch();或ch=getch();

用getch();會(huì)等待你按下任意鍵,再繼續(xù)執(zhí)行下面的語句;

用ch=getch();會(huì)等待你按下任意鍵之后,把該鍵字符所對應(yīng)的ASCII碼賦給ch,再執(zhí)行下面的語句。

易錯(cuò)點(diǎn):

  1.所在頭文件是conio.h。而不是stdio.h。

  2.在使用之前要調(diào)用initscr(),結(jié)束時(shí)要調(diào)用endwin()。否則會(huì)出現(xiàn)不輸入字符這個(gè)函數(shù)

  也會(huì)返回的情況。

  3.在不同平臺,輸入回車,getch()將返回不同數(shù)值,而getchar()統(tǒng)一返回10(即/n)

  1)windows平臺下ENTER鍵會(huì)產(chǎn)生兩個(gè)轉(zhuǎn)義字符 /r/n,因此getch返回13(/r)。

  2)unix、 linux系統(tǒng)中ENTER鍵只產(chǎn)生 /n ,因此getch返回10(/n)。

  3)MAC OS中ENTER鍵將產(chǎn)生 /r ,因此getch返回13(/r)。

  getch();并非標(biāo)準(zhǔn)C中的函數(shù),不存在C語言中。所以在使用的時(shí)候要注意程序的可移植性。國內(nèi)C語言新手常常使用getch();來暫停程序且不知道此函數(shù)來源,建議使用getchar();代替此功能或更換一款編譯器。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 封丘县| 南康市| 晋中市| 山阴县| 平罗县| 神农架林区| 雅江县| 通化县| 永川市| 忻州市| 沁水县| 宁晋县| 平定县| 时尚| 荃湾区| 周至县| 兴业县| 霸州市| 叶城县| 谷城县| 平遥县| 绥芬河市| 乌鲁木齐县| 淳化县| 临猗县| 闸北区| 闽侯县| 福清市| 浙江省| 淮北市| 炎陵县| 合川市| 太和县| 深州市| 南通市| 太仓市| 阳山县| 抚松县| 丽水市| 巢湖市| 方正县|