C语言 初学编程 关于getchar函数的问题 我用的开发环境是dev-c++,做完程序后 打开 5

C语言初学编程关于getchar函数的问题我用的开发环境是dev-c++,做完程序后打开exe,发现打开一下窗口闪一下就消失了。百度后得知解决方法是用函数getchar或... C语言 初学编程 关于getchar函数的问题

我用的开发环境是dev-c++,做完程序后 打开exe,发现打开一下 窗口闪一下就消失了。
百度后得知解决方法是用函数getchar或者system。后者我已经使用过 解决了我的问题。但前者却不行。请先看图中程序和对应描述,我的问题在最后

如图1我使用了getchar 但做完程序打开exe 窗口仍然闪一下就没了,跟没用一样

如图2,由于用了if else,所以我使用2处getchar(不知道这样对不对,如不对请指出),但还是相同的情况,exe窗口闪一下没了。不过,若我把第二处的getchar放在它下方的大括号之外,则if(a==1)却可以使窗口不消失 即按任意键才继续,反而if(a==0)还是闪现后消失

如图3,getchar可以达到使窗口不消失的效果,按任意键才会继续(窗口消失)

为什么三个程序都用了getchar却有不同的效果?请按三幅图不同的情况来分别回答,谢谢
展开
 我来答
豆菲特
2015-01-25 · TA获得超过332个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:130万
展开全部
因为你要通过scanf从标准输入读取一个整型值,但是你在标准输入却输入了"整型值“+”回车“,整型值被scanf读入,”回车“却停留在标准输入的缓冲区。你后面再调用getchar(),就会从标准输入的缓冲区读取到缓冲的”回车键“。故没机会从标准输入直接读取。
可以将你的程序修改,在scanf之后增加一个语句,把标准输入的缓冲区读完:
scanf("%d", &a);
while (getchar()!='\n') ;
HoLee1997
2015-01-25 · TA获得超过1961个赞
知道大有可为答主
回答量:2557
采纳率:84%
帮助的人:976万
展开全部
getchar函数上面加上fflush(stdin);试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浅墨无暇
2015-01-25 · 超过18用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:34.4万
展开全部
要加上#include<string.h>吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式