Scanf没有读取双倍

cod*_*ode 0 c floating-point double scanf

我试图double从用户不断读取值scanf.

码:

printf("Enter A value: \n");
double input;
int result = scanf("%f", &input);
printf("INPUT: %f\n", input);
Run Code Online (Sandbox Code Playgroud)

输出是

INPUT: 0.000
Run Code Online (Sandbox Code Playgroud)

Jen*_*ens 6

你骗了编译器:扫描时%f说你提供指针float.但是你提供了指针double.

要修复,请使用%lf 声明inputfloat.

请注意,printf格式存在不对称性,%f用于两者floatdouble参数.这是有效的,因为printf参数被提升为double(并且不是指针).