getche

更新时间:2023-03-07 06:24:10 阅读: 评论:0

红烧排骨土豆-糖醋鲤鱼做法

getche
2023年3月7日发(作者:接头连接)

c++字符串合并_C语⾔输⼊字符和字符串(所有函数⼤汇总)

C语⾔输⼊字符和字符串(所有函数⼤汇总)

C语⾔有多个函数可以从键盘获得⽤户输⼊,它们分别是:

scanf():和printf()类似,scanf()可以输⼊多种类型的数据。

getchar()、getche()、getch():这三个函数都⽤于输⼊单个字符。

gets():获取⼀⾏数据,并作为字符串处理。

scanf()是最灵活、最复杂、最常⽤的输⼊函数,上节我们已经进⾏了讲解,本节接着讲解剩下的函数,也就是字符输⼊函数和字符串输⼊

函数。

输⼊单个字符

输⼊单个字符当然可以使⽤scanf()这个通⽤的输⼊函数,对应的格式控制符为%c,上节已经讲到了。本节我们重点讲解的是

getchar()、getche()和getch()这三个专⽤的字符输⼊函数,它们具有某些scanf()没有的特性,是scanf()不能代替的。

1)getchar()

最容易理解的字符输⼊函数是getchar(),它就是scanf("%c",c)的替代品,除了更加简洁,没有其它优势了;或者说,getchar()就是

scanf()的⼀个简化版本。

下⾯的代码演⽰了getchar()的⽤法:

#includeintmain(){charc;c=getchar();printf("c:%c",c);return0;}

输⼊⽰例:

@↙c:@

你也可以将第4、5⾏的语句合并为⼀个,从⽽写作:

charc=getchar();

2)getche()

getche()就⽐较有意思了,它没有缓冲区,输⼊⼀个字符后会⽴即读取,不⽤等待⽤户按下回车键,这是它和scanf()、getchar()的最⼤

区别。请看下⾯的代码:

#include#includeintmain(){charc=getche();printf("c:%c",c);return0;}

输⼊⽰例:

@c:@

输⼊@后,getche()⽴即读取完毕,接着继续执⾏printf()将字符输出,所以没有按下回车键程序就运⾏结束了。

注意,getche()位于conio.h头⽂件中,⽽这个头⽂件是Windows特有的,Linux和MacOS下没有包含该头⽂件。换句话

说,getche()并不是标准函数,默认只能在Windows下使⽤,不能在Linux和MacOS下使⽤。

3)getch()

getch()也没有缓冲区,输⼊⼀个字符后会⽴即读取,不⽤按下回车键,这⼀点和getche()相同。getch()的特别之处是它没有回显,看

不到输⼊的字符。所谓回显,就是在控制台上显⽰出⽤户输⼊的字符;没有回显,就不会显⽰⽤户输⼊的字符,就好像根本没有输⼊⼀样。

回显在⼤部分情况下是有必要的,它能够与⽤户及时交互,让⽤户清楚地看到⾃⼰输⼊的内容。但在某些特殊情况下,我们却不希望有回

显,例如输⼊密码,有回显是⾮常危险的,容易被偷窥。

getch()使⽤举例:

#include#includeintmain(){charc=getch();printf("c:%c",c);return0;}

输⼊@后,getch()会⽴即读取完毕,接着继续执⾏printf()将字符输出。但是由于getch()没有回显,看不到输⼊的@字符,所以控制台

上最终显⽰的内容为c:@。

注意,和getche()⼀样,getch()也位于conio.h头⽂件中,也不是标准函数,默认只能在Windows下使⽤,不能在Linux和MacOS

下使⽤。

对三个函数的总结

函数缓冲区头⽂件回显适⽤平台getchar()有stdio.h有Windows、Linux、MacOS等所有平台getche()⽆conio.h有Windowsgetch()⽆

conio.h⽆Windows

输⼊字符串

输⼊字符串当然可以使⽤scanf()这个通⽤的输⼊函数,对应的格式控制符为%s,上节已经讲到了;本节我们重点讲解的是gets()这个专

⽤的字符串输⼊函数,它拥有⼀个scanf()不具备的特性。

gets()的使⽤也很简单,请看下⾯的代码:

#includeintmain(){charauthor[30],lang[30],url[30];gets(author);printf("author:%s",author);gets(lang);printf("lang:%s",lang);gets(url);

运⾏结果:

gets()是有缓冲区的,每次按下回车键,就代表当前输⼊结束了,gets()开始从缓冲区中读取内容,这⼀点和scanf()是⼀样的。gets()

和scanf()的主要区别是:

scanf()读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以⽆法读取含有空格的字符串。

gets()认为空格也是字符串的⼀部分,只有遇到回车键时才认为字符串输⼊结束,所以,不管输⼊了多少个空格,只要不按下回车键,

对gets()来说就是⼀个完整的字符串。

也就是说,gets()能读取含有空格的字符串,⽽scanf()不能。

总结

C语⾔中常⽤的从控制台读取数据的函数有五个,它们分别是scanf()、getchar()、getche()、getch()和gets()。其中scanf()、

getchar()、gets()是标准函数,适⽤于所有平台;getche()和getch()不是标准函数,只能⽤于Windows。

scanf()是通⽤的输⼊函数,它可以读取多种类型的数据。

getchar()、getche()和getch()是专⽤的字符输⼊函数,它们在缓冲区和回显⽅⾯与scanf()有着不同的特性,是scanf()不能替代的。

gets()是专⽤的字符串输⼊函数,与scanf()相⽐,gets()的主要优势是可以读取含有空格的字符串。

scanf()可以⼀次性读取多份类型相同或者不同的数据,getchar()、getche()、getch()和gets()每次只能读取⼀份特定类型的数据,不

能⼀次性读取多份数据。

本文发布于:2023-03-07 06:24:09,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1678141450128592.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:getche.doc

本文 PDF 下载地址:getche.pdf

上一篇:我的祖国母亲
下一篇:返回列表
标签:getche
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|