运行情况:
5 a 9
5, ,-2
Program ended with exit code: 0
解析:
输入5时被变量a获取,所以a为5;输入空格被变量ch获取,所以ch为空格;输入a时,本应由b接收,但b是int型而输入的是字符型,b无法接收,保持原值,所以b仍为-2。
要解决该问题,可按如下方法。
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a=-1,b=-2;
char ch;
scanf("%d,%c,%d",&a,&ch,&b);//在scanf函数中加入逗号隔开
printf("%d,%c,%d\n",a,ch,b);
return 0;
}
复制代码
运行情况:
5,a,9//用户在输入时也必须加上逗号
5,a,9
Program ended with exit code: 0
当然除了逗号外,其它字符也可以,举例如下。
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a=-1,b=-2;
char ch;
scanf("%d-%cw%d",&a,&ch,&b);//用-和w分隔开
printf("%d,%c,%d\n",a,ch,b);
return 0;
}
复制代码
运行情况:
5-aw9//输入时保持格式的一致性,也用-和w分隔开
5,a,9
Program ended with exit code: 0