永发信息网

为什么运行不能输入scanf("%c",&c);这一步!见图!

答案:1  悬赏:20  手机版
解决时间 2021-04-04 11:18
为什么运行不能输入scanf("%c",&c);这一步!见图!
最佳答案
#include
main()
{int result,month,age;
char c;
printf("\nInpit your result:");
scanf("%d",&result);
if (result<-14||result>1184)
{printf("Wrong Result!Press any key for end...\n");
scanf("%c",&c);
exit(0);
}
month=(result+115)/100;
age=(result+115)%100;
printf("Your age is:%d,month:%d",age,month);
}

scanf()函数是从键盘缓冲区取数据,而不是直白的理解为我按一个键它才取走,因为你按下的键都被存入缓冲区,也就是说。你的这个函数没有起作用是因为你的键盘缓冲区还有字符,于是scanf()就不等你按下键,直接从缓冲区取走了。
记住scanf()不是直接和你打交道,你和scanf()之间还有个键盘缓冲区这样的中间代理人。

所以你的程序会出现没等你输入就直接结束了。

解决办法:
在scanf()前加入fflush(stdin);语句,你先不必观这个函数怎么来的,你只需要知道,你这样做了,键盘缓冲区就被清空。

以上是针对scanf()来说的。
但就你的程序目的来说。你用scanf()来让程序暂停很不好!

解决办法:
调用dos命令:
把scanf()语句换成 system("pause");
就可以让程序暂停了。这个语句是所有编译器都支持的。而且很安全。
不过这样做调用的是dos操作系统命令,只在win系统下用。不过已经满足你的连续需求了。

最后,你的程序结构有店不好。
你的
if (result<-14||result>1184)
{printf("Wrong Result!Press any key for end...\n");
scanf("%c",&c);
exit(0);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
—Will you take the blue shirt or the yell
如何用电饭煲煮粥,智能电饭煲煮粥怎么预约
求不yy的好看完结网游小说~
在华南师范大学怎么去东莞市凤岗镇中心小学啊
把音响插在电脑出现插头已拔出,用耳机却好着
闪银,可以一次申请两个贷款吗
一个多项式的平方是4a2+12ab+m,则m=A.9b2B.-
我应该辞职回老家吗?
求生之路女鬼怎么打
钅五 这个字读什么,
赠与合同与赠与行为有什么区别
西安柏树林附近哪里有给墙上打眼
怎么才能让公牡丹和母牡丹鹦鹉顺利交配
听说报周成建的特训班,有很多条件是吗?
淋巴结核传染吗,淋巴结核可以手术吗
推荐资讯
单选题下面各句修辞方法判断不正确的一项是A.
坠入地狱的女主角艾莉森·洛曼还主演过哪些电
杭州最有名的特产是什么?
如图,在?ABCD中,AC,BD相交于点O,点E,F在
张辉春教授讲座的感受
右图植物细胞模式图,请据图回答.(1)具有
摆渡人经典语句,摆渡人英国小说经典语录
20世纪50~60年代:中国与苏联是因为什么原因
关于父亲的电影台词,父母的苦心你们明白的有
解答题“民生无小事,枝叶总关情”。3月5日,
一个长方体的长、宽、高都是不同的质数,它的
烤箱没有上下火怎么办,烘焙烤箱上下火180度是
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?