C语言getchar()和gets()的用法 C语言中gets( )和getchar( )的功能?
C\u8bed\u8a00\u4e2dgets()\u51fd\u6570\u548cgetchar()\u51fd\u6570\u4ec0\u4e48\u533a\u522b \uff1f\u5728\u8fd9\u4e2a\u7a0b\u5e8f\u6bb5\u4e2d\uff0c\u6709\u4ec0\u4e48\u7528\uff1f\u3000\u3000\u533a\u522b\uff1a
\u3000\u30001\u3001gets\u8bfb\u4e00\u884c\uff0cgetchar()\u8bfb\u4e00\u4e2a\u5b57\u7b26\u3002
\u51fd\u6570\u539f\u578b\uff1a
char * gets(char * ptr);
int getchar(void);
2\u3001\u51fd\u6570\u7528\u6cd5\uff1a
1\uff09gets()\u7528\u4e8e\u4ece\u6807\u51c6\u8f93\u5165\u6d41stdin\u8bfb\u5165\u4e00\u4e2a\u6574\u884c\uff08\u4ee5'\n'\u6216EOF\uff09\u7ed3\u675f\uff0c\u5199\u5165ptr\u6307\u5411\u7684\u5b57\u7b26\u6570\u7ec4\uff0c\u5e76\u8fd4\u56de\u8fd9\u4e2a\u6307\u9488\uff1b\u51fa\u9519\u6216\u9047\u5230\u6587\u4ef6\u7ed3\u675f\u65f6\u5219\u8fd4\u56deNULL\u3002\u884c\u672b\u7684'\n'\u4ece\u6d41\u4e2d\u53d6\u51fa\uff0c\u4f46\u4e0d\u5199\u5165\u6570\u7ec4\u3002gets()\u4e0d\u68c0\u67e5\u88ab\u5199\u5165\u7684\u6570\u7ec4\u5927\u5c0f\u3002
2\uff09getchar()\u7528\u4e8e\u4ece\u6807\u51c6\u8f93\u5165\u6d41stdin\u8bfb\u5165\u4e00\u4e2a\u5b57\u7b26\uff0c\u5e76\u8fd4\u56de\u8fd9\u4e2a\u5b57\u7b26\u3002\u5982\u679c\u8bfb\u5230\u6587\u4ef6\u7ed3\u5c3e\uff0c\u5219\u8fd4\u56deEOF\u3002\u6ce8\u610f\u5230EOF\u4e0d\u80fd\u7528char\u7c7b\u578b\u8868\u793a\uff0c\u6240\u4ee5getchar()\u51fd\u6570\u8fd4\u56de\u7684\u662f\u4e00\u4e2aint\u578b\u7684\u6570\u3002\u4f7f\u7528\u65f6\u4e5f\u5e94\u8be5\u6ce8\u610f\u8fd9\u4e00\u70b9\u3002
\u3000\u3000\u8fd9\u4e2a\u51fd\u6570\u4e2d\u7684\u4f5c\u7528\uff1a
\u3000\u3000\u8fd9\u4e2a\u7a0b\u5e8f\u5728\u8f93\u5165name[i]\u524d\uff0c\u7528getchar()\u628a\u4e4b\u524dscanf("%d",&num[i]);\u4e2d\uff0c\u8f93\u5165\u6574\u6570\u540e\u6309\u7684\u56de\u8f66\u952e\u7ed9\u8bfb\u8d70\uff0c\u5426\u5219\u8fd9\u4e2a\u56de\u8f66\u952e\u4f1a\u5bfc\u81f4gets\u76f4\u63a5\u8bfb\u5230\u4e00\u4e2a\u7a7a\u5b57\u7b26\u4e32\u3002
char *gets( char * buffer ); \u529f\u80fd\uff1a\u4ecestdin\u6d41\u4e2d\u8bfb\u53d6\u5b57\u7b26\u4e32\uff0c\u76f4\u81f3\u63a5\u53d7\u5230\u6362\u884c\u7b26\u6216EOF\u65f6\u505c\u6b62\uff0c\u5e76\u5c06\u8bfb\u53d6\u7684\u7ed3\u679c\u5b58\u653e\u5728str\u6307\u9488\u6240\u6307\u5411\u7684\u5b57\u7b26\u6570\u7ec4\u4e2d\u3002\u6362\u884c\u7b26\u4e0d\u4f5c\u4e3a\u8bfb\u53d6\u4e32\u7684\u5185\u5bb9\uff0c\u8bfb\u53d6\u7684\u6362\u884c\u7b26\u88ab\u8f6c\u6362\u4e3anull\u503c\uff0c\u5e76\u7531\u6b64\u6765\u7ed3\u675f\u5b57\u7b26\u4e32\u3002 getchar \u4ecestdio\u6d41\u4e2d\u8bfb\u5b57\u7b26 \u9009C ------------------c++\u90e8\u843d------------Hello Word!-------- \u65e0\u8bba\u4f60\u662f\u521d\u5b66\u8005\u8fd8\u662f\u4e13\u5bb6\uff0c\u53ea\u8981\u4f60\u70ed\u7231\u7f16\u7a0b\u3001\u4ea4\u6d41\u3001\u5206\u4eab\uff0c\u6b22\u8fce\u52a0\u5165
C语言getchar()和gets()的用法:
1、gets读一行,getchar()读一个字符。
2、函数用法:
1)gets()用于从标准输入流stdin读入一个整行(以'
'或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的'
'从流中取出,但不写入数组。gets()不检查被写入的数组大小。
2)getchar()用于从标准输入流stdin读入一个字符,并返回这个字符。如果读到文件结尾,则返回EOF。注意到EOF不能用char类型表示,所以getchar()函数返回的是一个int型的数。使用时也应该注意这一点。
拓展资料:
getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF。
gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
参考资料:
百度百科——getchar
百度百科——gets
百度百科——C语言
实际上getchar函数是从缓冲区读取数据的,而不是从你的屏幕上读取数据.
键盘负责往缓冲区写入数据,而getchar函数负责读取数据.
getchar函数不会关心你实际输入的是什么,它只负责从缓冲区读取数据,而且每次读取一个字符.
你点击键盘的时候,实际上是往缓冲区输入:
你按下a,则缓冲区中保存了一个字符a
你按下b,则缓冲区中又保存了一个字符b
你按下c,则缓冲区中又保存了一个字符c
你按下1,则缓冲区中又保存了一个字符1
你按下backspace删除键,则缓冲区中删除了一个字符(最后保存的那个1)
除非你按下Enter,不然你其实就是在往缓冲区中塞数据.
关键点来了:当你按下Enter的时候,发生了两个动作.首先是往缓冲区保存了一个'\n'字符,然后才执行刷新
刷新其实就是告诉getchar(或者任何需要读取这个缓冲区的函数,比如scanf),现在你可以开始读取我保存的数据了.
getchar()读入一个字符,注意是一个(‘x’之类的就是一个字符)
gets()读入一个字符串(“xxxx”)不接受换行符
puts()根据gets()来输出
getchar()不用传参数
gets()遇到换行符就终止读取,会读取所有可打印符号,包括开头结尾的空格等
puts()和putchar()都会自动换行
getchar()得到的是字符如getchar('a'),gets是字符串如gets("阿凡达");是输入的字符
绛旓細2.getch();鎺ュ彈涓涓换鎰忛敭鐨勮緭鍏ワ紝涓嶇敤鎸夊洖杞﹀氨杩斿洖銆傝鍑芥暟鐨勮繑鍥炲兼槸鎵杈撳叆瀛楃鐨凙SCII鐮侊紝涓旇鍑芥暟鐨勮緭鍏ヤ笉浼氳嚜鍔ㄦ樉绀哄湪灞忓箷涓婏紝闇瑕乸utchar();鍑芥暟杈撳嚭鏄剧ず銆俫etch();鍑芥暟甯哥敤浜庝腑閫旀殏鍋滅▼搴忔柟渚胯皟璇曞拰鏌ョ湅銆3.getchar();鍜実etch();鐨勫彟涓涓尯鍒氨鏄墍闇瑕佸寘鍚殑澶存枃浠朵笉鍚屻俫etchar();鐢#...
绛旓細鏈変簺缂栬瘧鍣ㄥ湪鎵ц瀹岀▼搴忓悗浼氳嚜鍔ㄥ叧闂緭鍑虹晫闈紝淇楃О鈥滈棯閫鈥濓紝鍔犱笂getchar();锛屾剰鎬濇槸绛夊緟鐢ㄦ埛浠庨敭鐩樿緭鍏ヤ竴涓寜閿紝杩欐牱鍙互瑙e喅闂闂銆傝В鍐抽棯閫鐨勬柟娉曟湁澶氱锛岃繖鍙槸鍏朵腑涓绉嶃傚彟澶栵紝getchar()鏄竴涓畬鏁寸殑鍑芥暟锛屼腑闂存病鏈夌┖鏍笺
绛旓細getch涓巊etchar鍩烘湰鍔熻兘鐩稿悓,宸埆鏄痝etch鐩存帴浠庨敭鐩樿幏鍙栭敭鍊,涓嶇瓑寰呯敤鎴锋寜鍥炶溅,鍙鐢ㄦ埛鎸変竴涓敭,getch灏辩珛鍒昏繑鍥,getch杩斿洖鍊兼槸鐢ㄦ埛杈撳叆鐨凙SCII鐮,鍑洪敊杩斿洖-1.杈撳叆鐨勫瓧绗︿笉浼氬洖鏄惧湪灞忓箷涓.getch鍑芥暟甯哥敤浜庣▼搴忚皟璇曚腑,鍦ㄨ皟璇曟椂,鍦ㄥ叧閿綅缃樉绀烘湁鍏崇殑缁撴灉浠ュ緟鏌ョ湅,鐒跺悗鐢╣etch鍑芥暟鏆傚仠绋嬪簭杩愯,褰撴寜浠绘剰閿悗...
绛旓細鍏蜂綋鐢ㄦ硶锛岃繖閲岄渶瑕佸厛鏂板缓涓涓C璇█鐨勭┖鏂囦欢锛岄殢鍚庤緭鍏ユ紨绀轰唬鐮侊細2銆佺▼搴忔槸绠鍗曠殑getchar()鐢ㄦ硶锛岃繖閲岃緭鍏ヤ竴涓瓧绗︼紝绋嬪簭浼氬垽鏂槸鍚︿负瀛楃锛屽鏋滀笉鏄垯杈撳嚭閿欒锛屾槸杈撳嚭瀛楃锛3銆佽繍琛岀▼搴忥紝杈撳叆浠绘剰涓涓瓧绗︼紝杩欓噷杈撳叆瀛楃a锛屾寜涓嬪洖杞︾▼搴忎細鑷姩鍒ゆ柇a鏄竴涓瓧绗︼紝浠ヤ笂灏辨槸getchar鍑芥暟鐨勭敤娉曪細...
绛旓細getchar()鏄c璇█涓殑涓涓緭鍏ュ嚱鏁般傚彲浠ョ敤瀹冩潵璧嬩竴涓瓧绗︾殑鍊笺備緥濡傦細char a;a=getchar()銆傚綋浣犲湪閿洏涓婅緭鍏ヤ竴涓瓧绗︼紙濡傝緭鍏)鍚庢寜鍥炶溅锛岄偅涔堝瓧绗﹀彉閲廰鐨勫煎氨鏄紘g'浜嗐備笌scanf鐨勫尯鍒細1銆getchar锛堬級鍑芥暟鍙兘杈撳叆涓涓瓧绗﹀瀷鐨勫硷紝鑰宻canf锛堬級鍑芥暟闄や簡瀛楃鍨嬶紝杩樺彲浠ヨ緭鍏ュ绉嶆暟鎹被鍨嬬殑鍊硷紝...
绛旓細getchar()鍙兘鎺ヤ綘杈撳叆鐨勪竴涓瓧绗︼紝鑰屼笉鏄瓧绗︿覆銆俫etchar()涔熶笉鏄贡鐢ㄧ殑锛屼竴鑸儏鍐靛氨鐢ㄥ湪杈撳叆瀛楃鐨勭殑鎯呭喌涓嬨傝嚦浜庝綘鍚庨潰璇寸殑姣忓綋鏈夎緭鍏ヨ鍙ユ椂閮藉幓鍔犱竴涓猤etchar()鏄病鏈夊繀瑕佺殑銆傚鏋滀綘鎯崇敤getchar()鍘绘帴浣忎笂娆¤緭鍏ョ殑鍥炶溅绗︿互渚跨粰涓嬮潰鐨勮繍绠楀甫鏉ュ噯纭х殑璇濓紝灏辨槸鍦ㄨ緭鍏ユ暣鍨嬫垨鑰呮诞鐐瑰瀷涔嬪悗鍐嶅姞涓涓...
绛旓細浣跨敤getchar璇诲彇鐢ㄦ埛鐨勮緭鍏ユ椂锛岄渶瑕佹敞鎰忚緭鍏ユ祦涓彲鑳戒細閬楃暀鍥炶溅绗︺佹崲琛岀浠ュ強绌烘牸绛夌壒娈婂瓧绗︼紝涓轰簡鑳藉姝g‘澶勭悊杩欎簺杈撳叆锛岄渶瑕佸鍏惰繘琛屼竴瀹氱殑杩囨护鍜屽鐞嗐傚湪C璇█涓紝getchar鍑芥暟瀹氫箟鍦ㄥご鏂囦欢涓紝浣跨敤鏃堕渶瑕佸紩鍏ヨ澶存枃浠躲傝鍑芥暟鐨勫師鍨嬩负int getchar(void)锛岃繑鍥炲间负涓涓瓧绗︾殑ASCII鐮侊紝鑻ヨ鍒癊OF鍒欒繑鍥-1...
绛旓細getchar()鍑芥暟鏄C璇█涓撻棬涓鸿緭鍏ュ崟涓瓧绗﹁屾彁渚涚殑锛実etchar()鍑芥暟鏄粠I/O瀛楃娴佷腑璇诲彇涓涓瓧绗︼紝蹇呴』杈撳叆鎹㈣鎵嶈兘璇诲叆瀛楃銆備緥濡傦細include<stdio.h> int main(void){ char ch;int i;for(i=0;i<5;i++){ ch=getchar(); //甯﹀洖鏄撅紝涓旂瓑寰呮寜Enter閿崲琛 printf("%c",ch);} return 0;...
绛旓細getch涓巊etchar鍩烘湰鍔熻兘鐩稿悓,宸埆鏄痝etch鐩存帴浠庨敭鐩樿幏鍙栭敭鍊,涓嶇瓑寰呯敤鎴锋寜鍥炶溅,鍙鐢ㄦ埛鎸変竴涓敭,getch灏辩珛鍒昏繑鍥,getch杩斿洖鍊兼槸鐢ㄦ埛杈撳叆鐨凙SCII鐮,鍑洪敊杩斿洖-1.杈撳叆鐨勫瓧绗︿笉浼氬洖鏄惧湪灞忓箷涓,甯哥敤浜庢殏鍋滅▼搴.conio鏄疌onsole Input/Output锛堟帶鍒跺彴杈撳叆杈撳嚭锛夌殑绠鍐欙紝鍏朵腑瀹氫箟浜嗛氳繃鎺у埗鍙拌繘琛屾暟鎹緭鍏ュ拰鏁版嵁杈撳嚭...
绛旓細getchar()鍦C绋嬪簭涓殑鍔熻兘鏄帴鏀朵竴涓瓧绗︺俫etchar()鍦–绋嬪簭涓殑鍔熻兘鏄帴鏀朵竴涓瓧绗︼紝褰撴垜浠湪杩炵画杈撳叆瀛楃鐨勬椂鍊檊etchar()浼氱粰浣犳剰鎯充笉鍒扮殑鏁堟灉銆俫etchar()鏄痵tdio.h涓殑搴撳嚱鏁帮紝瀹冪殑浣滅敤鏄粠stdin娴佷腑璇诲叆涓涓瓧绗︼紝涔熷氨鏄锛屽鏋渟tdin鏈夋暟鎹殑璇濅笉鐢ㄨ緭鍏ュ畠灏卞彲浠ョ洿鎺ヨ鍙栦簡銆c璇█鐨勭壒鐐 C...