当前位置: 代码迷 >> C语言 >> [转载]getch()、getche()和getchar()函数
  详细解决方案

[转载]getch()、getche()和getchar()函数

热度:732   发布时间:2007-06-17 09:18:43.0
[转载]getch()、getche()和getchar()函数

这个问题,谭浩强的C语言设计第二版没有讲清楚,或者没有讲。
查了查其它的资料,总算搞清楚了。

getch()、getche()和getchar()函数
(1) getch()和getche()函数
这两个函数都是从键盘上读入一个字符。其调用格式为:
getch();
getche();
两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche()
函数却将读入的字符回显到显示屏幕上。
例1:
#include
main()
{
char c, ch;
c=getch(); /*从键盘上读入一个字符不回显送给字符变量c*/
putchar(c); /*输出该字符*/
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(c); /*显示输入的第一个字符*/
getch(); /*等待按任一健*/
}
例4
#include
main()
{
char c;
while ((c=getchar())!='\n') /*每个getchar()依次读入一个字符*/
printf("%c",c); /*按照原样输出*/
getch(); /*等待按任一健*/
}


搜索更多相关的解决方案: getchar  getche  函数  

----------------解决方案--------------------------------------------------------

getchar()的一点感受2007-05-07 15:121 #include

2 main()

3 {

4 int c;

5 c=getchar();

6 while(c!=EOF)

7 {

8 putchar();

9 c=getchar();

10 }

11 return 1;

12 } 其实这是c程序设计语言的第一个小程序,不过当时我就有点乱了,因为我认为应该是一次只能输出一个字符,可是这个却可以实现多个字符的输出,在当时不理解的情况下,我又将第9行去掉,出来一个结果(可以试一下,是个死循环)。最后和同学讨论了一下,终于理解了。解释一下吧。

4 int c; //这个可以去看一下getchar的声明,就可以知道它的定义其实是int型的。

5 c=getchar();// 获取一个字符,注意:在这里只是获取了一个字符

6 while(c!=EOF)//判断是否结束

7 {

8 putchar();//把第一个数输出

9 c=getchar();//获取下一个数

10 }

重要的问题是循环部分,假如你输入的数是abc,其实这三个数都保存在了缓冲区里,第一次,从缓冲区中读取一个字符,然后循环(我原来想的是一次就结束),将缓冲区中的数据读取结束后才结束。

举个例子:

1 #include

2 main()

3 {

4 int c;

5 c=getchar();

6 putchar();

7 c=getchar();

8 putchar();

9 return 1;

10 }

如果你输入的依然是abc,那么程序会输出ab,并不会让你继续输入数据,因为缓冲区的数据还没有读取结束。

那么还看这个例子,如果输入a后回车呢?结果是输出a就结束,也没有让你输入数据,因为其实你已经输入了两个数据,一个是a,而另一个是回车,这回对这个程序有了深入了了解了吧?


----------------解决方案--------------------------------------------------------

菜鸟 顶你


----------------解决方案--------------------------------------------------------
  相关解决方案