此问题在此处已有答案:
What happens when I use the wrong format specifier?(2个答案)
19天前关闭
在Kernighan和里奇的C书中,我被要求写一个程序来打印EOF的值
我这样写是对的:
#include <stdio.h>
void main(){
printf("%d", EOF);
}
字符串
我得到的答案是-1......但出于好奇,我输入了%f
而不是%d
。显示0.00000000
为什么会这样?
我得到了我所期望的结果......但后者(以浮点型打印),我出于好奇而这样做,并认为结果应该是-1.0或类似的东西。
1条答案
按热度按时间nhaq1z211#
如果
printf
的参数与格式不匹配,则调用Undefined Behaviour(UB)。在传递给
printf
函数之前,需要将其转换为double:字符串