c语言|C语言-交叉输入%c和%d

c语言|C语言-交叉输入%c和%d


①例子
用scanf(\"%f%c%f%c\"&a&b&c&d);
给a赋值数字1.0
给b赋值字符%
给c赋值数字2.0
给d赋值字符¥
(字符型占一个字节)

②输入:1.0空%空2.0空¥
a=1.0
b=空(空格被识别为字符)
c为数字型%f , 不可能接收字符% , 类型不匹配 , 函数结束执行 。

③输入:1.0%2.0空¥
a=1.0
b=%或b=%2.0
b为字符型%c可以同时接收字符和数字 , 或理解为%2.0本身为一个字符 。
无唯一结果 , 函数结束执行 。

④输入:1%空空2¥
a=1.0
b=%
两个空格只起一个间隔作用 , 把字符和数字隔开 , 免得%c同时接收字符和数字 。
c=2.0
d=¥
输入结果正确 。

⑤总结
%d只能接收数字
%c可以接收字符和数字

%d%c可以输入数字+字符
(不能数字+空格+字符 , 因为空格会被识别为字符)
%c%d不能输入字符+数字
【c语言|C语言-交叉输入%c和%d】(必须字符+空格+数字用空格分隔)