中易网

scanf连续输入整型和字符型得不到正确结果问题

答案:5  悬赏:20  
解决时间 2021-03-24 09:31
#include<stdio.h>
int main()
{
int a,b;
char c;
printf("\nPlease enter the a and b:");
scanf("%d,%d",&a,&b);
printf("\nPlease enter the c:");
scanf("%c",&c);
printf("\na,b,c is %d,%d,%c",a,b,c);
return 0;
}

我试验了,如果c是整形一点问题都没有,能输出正确结果

但c如果是字符型,则输入完a,b值回车后,系统自动把回车符\n赋值给c而没有出现等待输入的情况,程序直接结束,c为\n

请问如何避免?!!!!!!!!!
最佳答案
因为你要输入的是字符,而空白字符(回车,换行,空格等)也是字符,他是把你的回车当成你要输入的字符了··,用scanf输入字符的时候应该加上空格就可以了,如下所示就行
char c;
scanf(" %c",&c);

就是在%c前面加个空格( %c)就是这样,这样的话就会忽略掉空白字符,直到不是空白字符就赋值给c,不知道你清楚没有也
全部回答
scanf("%c",&c); 改成 scanf("%s",&c);
scanf("%c",&c); 换成scanf("%s",&c);就OK了,%c每次就获取一个char的
printf("\nPlease enter the a and b:"); scanf("%d,%d",&a,); getchar();//在这里加一句,作用为提取字符。 printf("\nPlease enter the c:"); scanf("%c",&c);
格式不同 输入整型时 用%d %u等格式 输入字符型时 用%c格式。 根据格式,写入的大小不同。 分别是sizeof(int) 和 1字节。 出错情况不同。 整型的时候 遇到不是合法数字的字符就会出错。 字符型 除非遇到eof 否则不会出错。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问吉他谱中怎么弹奏,这样的符号叫什么名字
苏州市疾控中心周六周日体检吗?
2012年呼伦贝尔扎兰屯市一中录取线是多少????
为什么空调工作一会就自动停了上面还显示pi
买国产电脑好还是买外国的品牌?
桥西区张家口彩翼家纺地址有谁知道?有点事想
求了不起的盖茨比网盘
宜昌口碑好的婚庆公司是
胎儿一天打嗝几次正常的啊?我现在不太了解的
欢天喜地对亲家贾小芳扮演者
小鳄龟漂起来了,怎么办?
很明显的水痘坑 水痘坑做切缝疤痕明显吗
我家的宽带是电信50M的,我的电脑下载软件时
煤化工将来具体是做什么工作的,越详细越好。
佛山禅城区有什么羽毛球馆?
推荐资讯
在外打工的女同志.多数只是趁公.婆年轻出外就
汽车用品怎么招商
女生娃娃脸是什么意思?
蓝莓互联好不好?
电饼铛,烤箱哪个做芝麻饼好吃
你好 我的实习协议到期了,公司要求签劳动合
适合5个月大的小孩益智玩具有哪些呢?我家小
激光脱毛有哪些优势,那种效果最好
四川省宣汉县双河镇邮局电话号码
用铁锅和水泥时粘到铁锅上一部分,干了以后怎
access中如何书写查询条件的书写形式 如查询9
有一个的,地方的水治白头发
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?