关于一个简单的问题把我整不自信了!(语言-c语言)

刷题的时候发现输入多个数据,多种类型等情况输入方式不一样,有的需要输入“x=10,y=66.6”这种格式,有的直接输入“10,66.6”就可以,有的是输入“10<回车>66.6<回车>”,输入方式是怎么判定的?

①scanf("x=%d,y=%f\n",&x,&y); //输入为“x=10,y=66.6”
printf("x=%d,y=%4.2f\n",x,y); //输出为:“x=10,y=66.60”

②scanf("%d,%f\n",&x,&y); //输入为“10,66.6”
printf("x=%d,y=%4.2f\n",x,y); //输出为:“x=10,y=66.60”

③scanf("%d%f\n",&x,&y); //输入为“10<回车>66.6<回车>”
printf("x=%d,y=%4.2f\n",x,y); //输出为:“x=10,y=66.60”

④scanf("%d%c\n",&x,&y); //输入为“10B”
printf("x=%d,y=%c\n",x,y); //输出为:“x=10,y=B”

等等这些情况,换一种输入方式,如①输入“10,66.6”输出结果无法得到“x=10,y=66.60” ,有的甚至无法输入;
相关的解释资料请问一下哪里可以查到?我在我能够想到的方式都找了,但是没有查到;

了解输入方式与程序编写的关联性

供参考:https://baike.baidu.com/item/scanf/10773316?fr=aladdin

①scanf("x=%d,y=%f\n",&x,&y); //输入为“x=10,y=66.6” 这里指定了输入的格式为"x=%d,y=%f\n",因此必须输入x=,y=
printf("x=%d,y=%4.2f\n",x,y); //输出为:“x=10,y=66.60”

②scanf("%d,%f\n",&x,&y); //输入为“10,66.6” 这里指定的格式是 ,
printf("x=%d,y=%4.2f\n",x,y); //输出为:“x=10,y=66.60”

③scanf("%d%f\n",&x,&y); //输入为“10<回车>66.6<回车>” 这里指定的格式是 \n
printf("x=%d,y=%4.2f\n",x,y); //输出为:“x=10,y=66.60”

④scanf("%d%c\n",&x,&y); //输入为“10B” 这里指定的格式是int char,所以输入的int会赋值给x,输入的char会赋值给y
printf("x=%d,y=%c\n",x,y); //输出为:“x=10,y=B”

这个跟你scanf语句中指定的输入格式有关啊
除了用%符号限定的输入数据通配符以外,其它的字符都输入是都要同样的输入才行
比如 printf("x=%d,y=%c\n",x,y),你输入的时候,x= , y= \n你都得输入,少一个都不行。

scanf里,如果两个变量%d%d,中间没有任何符号,那么输入的时候输入空格即可
如果你scanf里是逗号,那么输入的时候也必须是逗号
不要在scanf里放\n,否则你需要连续输入两次回车,一个回车是换行符,另一个表示输入结束
scanf看起来简单,但是里面涉及到格式化字符串,是个难点
新手在没搞清字符串格式化的规律之前,不要写太复杂的格式
或者抽点时间把这个知识点好好的搞搞懂,不要总是凭感觉写

你有按回车嘛,你这还有\n换行符。
或者你将\n删掉试试


可以查看手册:c语言-exp() 中的内容