| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 971 人关注过本帖, 1 人收藏
标题:[转载]getch()、getche()和getchar()函数
只看楼主 加入收藏
ljfljf2006
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-9-11
收藏(1)
 问题点数:0 回复次数:2 
[转载]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 函数 
2007-06-17 09:18
ljfljf2006
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-9-11
收藏
得分:0 

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,而另一个是回车,这回对这个程序有了深入了了解了吧?


I will come back!
2007-06-17 09:45
dainichuhai
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2005-10-14
收藏
得分:0 

菜鸟 顶你


2007-06-17 22:20
快速回复:[转载]getch()、getche()和getchar()函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011682 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved