提问人:Lourdh Irudhaya Selvam 提问时间:7/14/2023 最后编辑:mousetailLourdh Irudhaya Selvam 更新时间:7/14/2023 访问量:56
浮点型中的 EOF 值 [duplicate]
EOF value in float type [duplicate]
问:
在 Kernighan 和 Ritchie 的 C 书中,Im 要求编写一个程序来打印 EOF 的值
我写得对了:
#include <stdio.h>
void main(){
printf("%d", EOF);
}
我得到 -1 作为答案,我做对了......但出于好奇,我输入了 .它显示 0.00000000%f
%d
为什么?
我得到了我所期望的......但后者(以浮动类型打印),我是出于好奇而这样做的,并认为结果应该是 -1.0 或类似的东西。
答:
1赞
0___________
7/14/2023
#1
如果 的参数与格式不匹配,则调用未定义行为 (UB)。printf
在传递给函数之前,您需要将其转换为双精度:printf
printf("%f", (double)EOF);
评论
%f
double
EOF
int
printf("%f", (double)EOF);
main()
int
void
-Wall -Wextra
printf
printf
int printf(const char *restrict format, ...);
, ...
printf