-1

我有以下代码:

    int main(void)
{
    double r;
    scanf("lf",&r);
    printf("%lf\n",r);
}

我输入的任何值都会返回一个大约 40-50 位的无意义数字。scanf 可以很好地处理字符、整数、字符串等,但是使用双打我会遇到这个问题。有谁能够帮我?

4

6 回答 6

4
scanf("lf",&r);

应该

scanf("%lf",&r);
于 2013-11-25T12:46:56.117 回答
4

%在格式字符串中缺少百分比 ( ) 符号,它应该是:

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");
}
于 2013-11-25T12:51:12.910 回答
3

%lf阅读时需要。

于 2013-11-25T12:46:48.627 回答
3

尝试

scanf("%lf",&r);

你忘了把%.

于 2013-11-25T12:47:05.873 回答
0

你需要

scanf("%lf", &r);

每当您使用 scanf() 时,您都需要将百分号放在您正在使用的变量类型的前面。

于 2013-11-25T12:49:41.387 回答
0

%你之前忘记了lf

scanf("%lf", &yourDouble);
于 2013-11-25T13:28:59.087 回答