使用 %f 输出 EOF
Output EOF using %f
#include<stdio.h>
int main()
{
printf("%d",EOF);
}
生成 -1 完全没问题,但是
#include<stdio.h>
int main()
{
printf("%f",EOF);
}
产生 0.000 。当预期输出为 -1.000 时,有人如何解释这一点?
对 printf()
中的任何特定参数使用错误的格式说明符会调用 undefined behaviour.
EOF
是 int
类型。您只能将 %d
用于 int
类型的变量。
FWIW,如果你想要 int
的浮点表示,你必须 cast
变量(但我个人建议避免这种情况)
printf("%f",(float)EOF);
EOF
是 int
(signed
) 类型。你不应该使用错误的格式说明符来打印 int
,否则它会调用未定义的行为。
#include<stdio.h>
int main()
{
printf("%d",EOF);
}
生成 -1 完全没问题,但是
#include<stdio.h>
int main()
{
printf("%f",EOF);
}
产生 0.000 。当预期输出为 -1.000 时,有人如何解释这一点?
对 printf()
中的任何特定参数使用错误的格式说明符会调用 undefined behaviour.
EOF
是 int
类型。您只能将 %d
用于 int
类型的变量。
FWIW,如果你想要 int
的浮点表示,你必须 cast
变量(但我个人建议避免这种情况)
printf("%f",(float)EOF);
EOF
是 int
(signed
) 类型。你不应该使用错误的格式说明符来打印 int
,否则它会调用未定义的行为。