| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:求教控制台输入的问题
只看楼主 加入收藏
lzm0707
Rank: 2
等 级:论坛游民
帖 子:20
专家分:33
注 册:2012-2-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
求教控制台输入的问题
#include <stdio.h>
#include <conio.h>
void main()
{
    char ch,a,b,c;
    printf ("Press any key to continue\n");
    a=getch();                             //接受字符但不显示
    printf("a=%c,\nType any character\n",a);
    b=getche();                           //接受字符且显示在屏幕上
    printf("\nb=%c,\nType any character\n",b);
    c=getchar();                         //接受字符显示且按回车才有效
    printf("c=%c,\nType any character\n",c);
    ch=fgetchar();                       //这个功能和getchar一样
    printf("ch=%c,\nType any character\n",ch);
}
每次执行的时候,都只能完成三次输入,第四个fgetchar()跟本没运行是什么问题,我把fgetchar()放在前面也是同样的问题,只能完成三次输入,第四个输入函数都运行不了,求解。。。。
搜索更多相关主题的帖子: 控制台 void character continue include 
2012-03-13 10:06
张敏樱木花道
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:137
注 册:2011-3-26
收藏
得分:20 
#include <stdio.h>
#include <conio.h>
void main()
{
    char ch,a,b,c;
    printf ("Press any key to continue\n");
    a=getch();   
    fflush(stdin);
    printf("a=%c,\nType any character\n",a);//接受字符但不显示
    b=getche();   
    fflush(stdin);//接受字符且显示在屏幕上
    printf("\nb=%c,\nType any character\n",b);
    fflush(stdin);
    c=getchar(); //接受字符显示且按回车才有效
     
    fflush(stdin );   printf("c=%c,\nType any character\n",c);
    ch=fgetchar();                       //这个功能和getchar一样
}
加上fflush(stdin),他的作用是强制刷新缓冲区。当你在进行 c=getchar(); //接受字符显示且按回车才有效 时,回车键还在缓冲中,fgetchar()就直接读取了回车,所以出现了问题。
在调用了getchar 后我们强制刷新缓冲区,这样就没有了回车。以后的输入就正常了。

另外,定义char 型去接受getch(),getchar()函数的返回值是不明智的。最好定义为int

希望对你有帮助。
2012-03-13 11:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
哦,忘了这个等效_fgetchar(),默认用stdin的,那应该是缓冲问题了。自己调试一下吧。

[ 本帖最后由 TonyDeng 于 2012-3-13 19:41 编辑 ]

授人以渔,不授人以鱼。
2012-03-13 19:31
lzm0707
Rank: 2
等 级:论坛游民
帖 子:20
专家分:33
注 册:2012-2-28
收藏
得分:0 
多谢楼上指点
2012-03-13 20:22
快速回复:求教控制台输入的问题
数据加载中...
 
   



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

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