例如:int a1,a2;
char c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);为什么上述程序必须用 10A 20B<CR>来输入数据?(两个空格)还有还有~char c1,c2;
float a1,a2;
scanf("%f%f",&a1,&a2);
scanf("%c%c",&c1,&c2);为什么要用7.29<CR> 101.298AB<CR>或 7.29 101.298AB<CR> (两个空格)不懂其中的规则/(ㄒoㄒ)/~~ 求大神指点?
1 回答
望远
TA贡献1017条经验 获得超1032个赞
%c输入的时候会读取单个字符,所以
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
在输入数据的时候前面数字和字符之间不能用空格分隔,如
12 a 34 b
那么12和a之间的空格就会被c1接收,导致后面的数据输入错误
解决方法:显式的给出数据输入时的分隔符。
scanf("%d %c %d %c",&a1,&c1,&a2,&c2);
而相同数据连续输入可以以空格,tab,换行作为默认的分隔符(%c输入字符除外)
- 1 回答
- 0 关注
- 1536 浏览
添加回答
举报
0/150
提交
取消