#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连续输入整型和字符型得不到正确结果问题
答案:5 悬赏:20
解决时间 2021-03-24 09:31
- 提问者网友:伴他一生,无悔
- 2021-03-23 11:26
最佳答案
- 二级知识专家网友:温柔刺客
- 2021-03-23 12:17
因为你要输入的是字符,而空白字符(回车,换行,空格等)也是字符,他是把你的回车当成你要输入的字符了··,用scanf输入字符的时候应该加上空格就可以了,如下所示就行
char c;
scanf(" %c",&c);
就是在%c前面加个空格( %c)就是这样,这样的话就会忽略掉空白字符,直到不是空白字符就赋值给c,不知道你清楚没有也
char c;
scanf(" %c",&c);
就是在%c前面加个空格( %c)就是这样,这样的话就会忽略掉空白字符,直到不是空白字符就赋值给c,不知道你清楚没有也
全部回答
- 1楼网友:你好陌生人
- 2021-03-23 14:59
scanf("%c",&c); 改成 scanf("%s",&c);
- 2楼网友:无字情书
- 2021-03-23 13:23
scanf("%c",&c);
换成scanf("%s",&c);就OK了,%c每次就获取一个char的
- 3楼网友:两不相欠
- 2021-03-23 12:32
printf("\nPlease enter the a and b:");
scanf("%d,%d",&a,);
getchar();//在这里加一句,作用为提取字符。
printf("\nPlease enter the c:");
scanf("%c",&c);
- 4楼网友:有钳、任性
- 2021-03-23 12:27
格式不同
输入整型时 用%d %u等格式
输入字符型时 用%c格式。
根据格式,写入的大小不同。
分别是sizeof(int) 和 1字节。
出错情况不同。
整型的时候 遇到不是合法数字的字符就会出错。
字符型 除非遇到eof 否则不会出错。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯