使用printf函数

use*_*214 2 c++ io

当我开始学习没有C的C++时,我从不打扰寻找printf.现在我想在某些项目中使用格式化输出.所以我正在寻找一些可以解释使用printf和IO流之间差异的参考资料.

我怀疑的是:

float f = 1.5;
printf("%d", f);
Run Code Online (Sandbox Code Playgroud)

为什么打印为零?FWIK它应该重新解释float为int是真的吗?

Naw*_*waz 7

它实际上调用了未定义的行为(UB).如果格式说明符与传递给的参数的类型不匹配printf,则它是UB,这意味着任何事情都可能发生.它可以打印0,9878978或任何垃圾.任何完全不可预测的事情都可能发生.

使用%f如果参数的数据类型是float.