当我开始学习没有C的C++时,我从不打扰寻找printf.现在我想在某些项目中使用格式化输出.所以我正在寻找一些可以解释使用printf和IO流之间差异的参考资料.
我怀疑的是:
float f = 1.5;
printf("%d", f);
Run Code Online (Sandbox Code Playgroud)
为什么打印为零?FWIK它应该重新解释float为int是真的吗?
它实际上调用了未定义的行为(UB).如果格式说明符与传递给的参数的类型不匹配printf,则它是UB,这意味着任何事情都可能发生.它可以打印0,9878978或任何垃圾.任何完全不可预测的事情都可能发生.
使用%f如果参数的数据类型是float.
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |