| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4242 人关注过本帖
标题:为什么需要输入两个getchar()才不会一闪而过??
只看楼主 加入收藏
lfh345649817
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-9-12
收藏
 问题点数:0 回复次数:6 
为什么需要输入两个getchar()才不会一闪而过??
#include <stdio.h>
int main (void)
{
long int a,i;
int g,s,b,q,w;
scanf("%ld",&a);
if (a<10)
printf("one\n");
else if (a<100)
printf("two\n");
else if (a<1000)
printf("three\n");
else if (a<10000)
printf("four\n");
else if (a<100000)
printf("It's five\n");
else printf("Error!Check,please!");
w=a/10000;
i=a%10000;
q=i/1000;
i=i%1000;
b=i/100;
i=i%100;
s=i/10;
i=i%10;
g=i;
printf("%d,%d,%d,%d,%d\n",w,q,b,s,g);
printf("Now,another turn:");
printf("%d,%d,%d,%d,%d\n",g,s,b,q,w);
getchar()
return 0;
}
这是完成老潭书后的一个作业题,输入5位输,判定几位,并依次输出每位数字,然后倒序输出数字
上面是我写的这个作业,运行之后一闪即过,在写了两个getchar()之后,问题解决
但我不明白的是为什么,请知道的帮忙解答下
谢谢!!!
搜索更多相关主题的帖子: getchar printf else 一闪而过 
2007-09-12 13:48
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
在你输入数据后,输入一个回车,回车符保存在缓存中,GETCHAR()接到回车符当然会一闪而过

解决方法:

1.将getchar();改成getch();加头文件conio.h

2.将getchar();改成system("pause");加头文件stdlib.h

3.在getchar();前加一句fflush(stdin);清除缓存

雁无留踪之意,水无取影之心
2007-09-12 14:07
lfh345649817
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-9-12
收藏
得分:0 
万分感谢,三种方法,呵呵```
2007-09-12 14:08
hackerkill
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-9-12
收藏
得分:0 

楼主的getchar()后没写分号哦(;),在getchar()前加上清楚键盘缓冲区函数即可.
此程序改成下面程序更清楚:加个输出函数printf()
#include <stdio.h>
int main (void)
{
long int a,i;
int g,s,b,q,w;
printf("请输入一个五位数");//告诉调试者输入一个五位数
scanf("%ld",&a);
if (a<10)
printf("one\n");
else if (a<100)
printf("two\n");
else if (a<1000)
printf("three\n");
else if (a<10000)
printf("four\n");
else if (a<100000)
printf("It's five\n");
else printf("Error!Check,please!");
w=a/10000;
i=a%10000;
q=i/1000;
i=i%1000;
b=i/100;
i=i%100;
s=i/10;
i=i%10;
g=i;
printf("%d,%d,%d,%d,%d\n",w,q,b,s,g);
printf("Now,another turn:");
printf("%d,%d,%d,%d,%d\n",g,s,b,q,w);
fflush(stdin);
getchar();//此处的分号不能省略
return 0;
}


本人是个编程爱好者,本人自己有个黑客技术论坛(振华培训基地),这里有c、C++、JAVA、VB等编程语言的教程,学习程序从理论到上机,最后课本学完后有项目实战是根据北大清鸟的课程体系来设计的(本人是北大清鸟的学员),
初学者的困惑都是共同的,很多程序能看懂就是不会编,能看懂```说明你的相应语法知识学到位了`````而且也一定的理解思维能力``不能编```说明你缺少练习``要多思考``多练习``任何一个问题``再难``都有它简单的一面``都是从这些简单的面慢慢升级的```当你不会编的时候``不问题简单化``简单到你会编了``然后再一步步的``难度化``最后到它的原来难度```,本人知道编程是个枯燥无味的活,也许多人参研究、讨论就会轻松多了,这也是本人建站的初衷呵呵。。。爱好编程的朋友可以去我的论坛逛逛,共同学习,挑战困难呵呵。
论坛网址:http://www.zh-hack.com/bbs/index.php


振华培训基地论坛:http://www.
2007-09-12 14:27
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 
学习了。。

代替leisure1980广告下: 群号45146331
2007-09-12 14:45
lfh345649817
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-9-12
收藏
得分:0 

恩,受教了``开始想的是完成作业,没去考虑调试者界面,呵呵```
看来路还很长,谢谢各位热心的解答!!

2007-09-12 17:08
mouse816
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-9
收藏
得分:0 
getchar起的作用是查看输出结果

喜欢一个人静静的思考....
2007-09-13 14:11
快速回复:为什么需要输入两个getchar()才不会一闪而过??
数据加载中...
 
   



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

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