c++ - 使用 printf 函数

标签 c++ io

当我开始学习没有 C 的 C++ 时,我从来没有费心去寻找 printf。现在我想在某些项目中使用格式化输出。所以我正在寻找一些可以解释使用 printf 和 IO 流之间的区别的引用资料。

我的一个疑问是:

float f = 1.5;
printf("%d", f);

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

最佳答案

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

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

关于c++ - 使用 printf 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7783159/

相关文章:

c++ - boost::condition_variable::notify_one() 的并发性

java - java 6是否支持同时读取和写入同一个文件?

events - 非阻塞(事件驱动 I/O)与阻塞 I/O

c++ - 使用 get() 从复制文件中获取垃圾值

javascript - 使用 Node.js 删除文本文件的前 15k 行

Java IO,从文件读取并打印到二维字符数组

C++ 或 Python : Bruteforcing to find text in many webpages

c++ - 使用基类指针调用带有派生类参数的模板化函数

c++ - 指针 vector 。如何使用?

c++ - 在 C++ 中返回 C 字符串数组