0
下面的代码似乎给出了不一致的答案,而不是预期的结果,我不知道为什么。scanf with formatted float
$ cat chk.c
#include <stdio.h>
int main()
{
float a;
scanf("%4.1f", &a);
printf("%4.1f\n", a);
return 0;
}
$ cc chk.c && ./a.out
12.1
0.0
$
这没有正确读取输入!任何人都可以解释这种行为吗?我在Linux上尝试了多个GCC版本,结果相同,并且网络搜索也没有用。
精度不属于'scanf'格式规范的一部分。 – 2014-09-02 02:06:34
第1步:将''\ n'放入'scanf(“%4f \ n”,&a);'这将处理第一个问题。 – chux 2014-09-02 02:07:20