2 回答
TA贡献1777条经验 获得超10个赞
getchar()是c语言中的一个函数,可以用它来赋一个字符的值。
当程序调用getchar时,程序就等待用户按键并将输入的字符被存放在键盘缓冲区中。getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕。在此之前,如果用户在按回车之前输入了一个以上的字符,那么其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1。
TA贡献1829条经验 获得超4个赞
这个问题,谭浩强的C语言设计第二版没有讲清楚,或者没有讲。
查了查其它的资料,总算搞清楚了。
getch()、getche()和getchar()函数
(1) getch()和getche()函数
这两个函数都是从键盘上读入一个字符。其调用格式为:
getch();
getche();
两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche()
函数却将读入的字符回显到显示屏幕上。
例1:
#include
main()
{
char c, ch;
c=getch(); /*从键盘上读入一个字符不回显送给字符变量c*/
putchar©; /*输出该字符*/
ch=getche(); /*从键盘上带回显的读入一个字符送给字符变量ch*/
putchar(ch);
}
利用回显和不回显的特点, 这两个函数经常用于交互输入的过程中完成暂停
等功能。
例2:
#include
main()
{
char c, s[20];
printf("Name:");
gets(s);
printf("Press any key to continue...");
getch(); /*等待输入任一键*/
}
(2) getchar()函数
getchar()函数也是从键盘上读入一个字符, 并带回显。它与前面两个函数
的区别在于: getchar()函数等待输入直到按回车才结束, 回车前的所有输入字
符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。
getchar()函数的调用格式为:
getchar();
例3:
#include
main()
{
char c;
c=getchar(); /*从键盘读入字符直到回车结束*/
putchar©; /*显示输入的第一个字符*/
getch(); /*等待按任一健*/
}
例4
#include
main()
{
char c;
while ((c=getchar())!='\n') /*每个getchar()依次读入一个字符*/
printf("%c",c); /*按照原样输出*/
getch(); /*等待按任一健*/
}
- 2 回答
- 0 关注
- 1099 浏览
添加回答
举报