我不确定我做错了什么,但是我无法从控制台读取双重内容。读它因某种原因工作正常。我正在使用Xcode。
double n1;
// get input from the user
printf("Enter first number: ");
scanf("%f", &n1);
printf("%f", n1);
无论我输入什么内容,它都会一直打印出来。
答案 0 :(得分:7)
%f
正在寻找一个浮动,而不是双重。如果要使用double,请使用格式%lf
。
除了有点有趣之外,clang在没有任何额外标志的情况下警告这一点,即使使用-Wall -Wextra -pedantic
,gcc 4.6也不会发出警告。
答案 1 :(得分:5)
%f
适用于single precision floating-point value
(浮动)。您需要的格式说明符是%lf
,表示long precision floating-point value
(双精度)。
答案 2 :(得分:2)