【发布时间】:2020-08-12 21:21:49
【问题描述】:
我最近开始学习 C++,并且对 C 有所了解。我想知道为什么人们在 C++ 中大多使用 cout 语句而不是 printf() 函数(即使他们这样做了,我只是从未见过使用C++ 中的 printf 函数)。根据我有限的经验,我发现我更喜欢 printf 函数,因为我发现它可以让我更好地控制要打印的内容。有人可以解释一下区别以及您更喜欢哪一个吗?
【问题讨论】:
-
您可以重载
operator<<以使用cout(和其他std::ostream类)支持您自己的类 - 对于printf,您没有任何此类选项 -
printf不是类型安全的。这就是为什么大多数人更喜欢cout。 -
“根据我有限的经验,我发现我更喜欢 printf 函数,因为我发现它可以让我更好地控制要打印的内容。” - 正如您自己所说,这仅基于您有限的经验。我不明白为什么 C++ I/O 流比 C I/O 函数提供的控制更少。
-
考虑使用{fmt} 而不是
<cstdio>中定义的不安全函数。另请注意,您可以使用manipulators 控制输入/输出流。 -
我会怀疑“人们主要使用 cout”的前提。在带有控制台输入和输出的初学者教程中,也许是的,但这主要是因为他们不关心错误处理和流状态的肮脏细节。至少
<iostream>很大,会导致编译时间过长。