时间:2019-03-08 标签:c++coutvsprintf()

c++ cout vs printf()

在通过几个不同的来源学习了 c++ 之后,我发现关于 cout/printf() 的使用的建议相互矛盾。一位消息人士说 printf(),我引用:

... does not provide type safety, so it is easy to inadvertently tell it to display an integer as if it were a character and vice versa. printf() also does not support classes, and so it is not possible to teach it how to print your class data; you must feed each class member to printf() one by one.

所以,对我来说更重要的是使用 printf() 的可读性因素。另一方面,另一个消息来源提到,cout 使用重载运算符 <<,需要执行更多指令,因此在内存方面比大型程序更昂贵。虽然,说这话的人是系统程序员,每一点性能都是至关重要的。但是说我想从事游戏或应用程序开发。

感谢您的任何意见。

您将针对特定用例衡量特定实施的差异并自行确定。

我想说问题中的两条推理线都有其优点,但您不能对性能一概而论。

如果你想从事游戏或应用程序编程,printf/cout就不需要太多了。在这些情况下的唯一用途是调试。

如果你真的需要大量使用printf/cout,区别就在写入大量数据的时候,否则就不用费心了。