马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 YiMingC 于 2019-3-19 21:57 编辑
代码如下,只有a的值可以被正常读取打印,不太理解为什么会这样。麻烦大家了。#include <stdio.h>
main()
{
long a,b;
float x,y;
scanf("%d,%d\n",&a,&b);
scanf("%5.2f,%5.2f\n",&x,&y);
printf("a= %d,b = %d\n",a,b);
printf("x = %f,y = %f\n",x,y);
}
哎,心好累。。。
你对scanf有误解啊。不知道你为什么要在scanf中添加回车字符。最开始你在scanf中添加浮点数长度位数限制,又添加回车字符,你为什么要写这些呢?加逗号也就忍了,居然添加这种字符。。。
本来只需要输入四个12,结果你则需要输入五个12.。。。。就因为你在scanf中写了"\n"。。。你的第三个12可以不写,直接回车。
说一下你这五个12,吧。第一个12 之后有个回车,这是系统认为第一个数字输入结束了,将12赋值给变量a,把回车当做了分隔符,第二个12一样,回车被当做分隔符,把第二个12赋值给变量b,
之后就在等待你输入回车"/n",但是你没有输入回车,而是输入了12,系统没检测到就等着呗,第三个12之后输入回车,系统检测到了!然后才执行下一个scanf……
你可以试着输入不同的数字就可以看出运行过程了,都是12 ,看不出来哪个12赋值给了哪个变量。
编程就需要多尝试,摸索一会儿就知道里面的道道了。
|