我有以下代码:
int main(void)
{
double r;
scanf("lf",&r);
printf("%lf\n",r);
}
我输入的任何值都会返回一个大约 40-50 位的无意义数字。scanf 可以很好地处理字符、整数、字符串等,但是使用双打我会遇到这个问题。有谁能够帮我?
scanf("lf",&r);
应该
scanf("%lf",&r);
您%
在格式字符串中缺少百分比 ( ) 符号,它应该是:
scanf("%lf", &r);
然后您应该添加检查返回值,因为正如您刚刚了解到的,I/O 很脆弱并且可能会失败。因此,除非您已验证扫描有效,否则依赖r
包含有效值是错误的:
if(scanf("%lf", &r) == 1)
{
print("got the double %g\n", r);
}
else
{
printf("**Failed to read a double value!\n");
}
%lf
阅读时需要。
尝试
scanf("%lf",&r);
你忘了把%
.
你需要
scanf("%lf", &r);
每当您使用 scanf() 时,您都需要将百分号放在您正在使用的变量类型的前面。
%
你之前忘记了lf
:
scanf("%lf", &yourDouble);