为了账号安全,请及时绑定邮箱和手机立即绑定

C语言中交叉输入数值数据和字符数据的规则是什么呢?

C语言中交叉输入数值数据和字符数据的规则是什么呢?

C
Rebellious_2016 2017-09-11 23:03:12
例如: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输入字符除外)

查看完整回答
反对 回复 2017-09-12
  • 1 回答
  • 0 关注
  • 1487 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信