1

可能重复:
C++ 中的 printf vs cout

cout 和 printf 有什么区别?

4

4 回答 4

1

cout 自动进行强制转换并找出您尝试打印的变量的类型。因此,您可以执行以下操作:

int myint = 5;
cout << myint;

cout 将检测到 myint 是一个 int 并打印它。使用 printf,您必须指定要打印的变量的类型:

int myint = 5;
printf("%d", myint);

此外, cout 比 printf 慢(因为它进行类型检测......),尽管在大多数实际应用中,您不会注意到性能差异。

于 2011-02-12T14:13:08.043 回答
1

printf是用于在库的标准输出(stdioC 的 IO 库)上打印数据的函数。它保留在 C++ 中主要是出于遗留原因,尽管有时它仍然有用。

cout是来自 iostreams 库的 C++ 流(特别是,它被定义为 a ostream &);iostreams 库是执行 IO 的本机 C++ 方式。

一般来说,使用 iostreams 比旧的类似 printf 的函数更容易和更安全(感谢<<运算符重载而不是格式字符串 + 可变参数),并且它是执行 IO 的 C++“惯用”方式,因此除非您有特定的不需要这样做。

于 2011-02-12T14:13:29.837 回答
0

基本上,cout是输出到标准输出的 C++ 方式,而printfC 方式。

C++ iostreams(其中cout之一)基于 C++ 类并且可扩展以处理新类。换句话说,您可以创建一个名为的类foo,然后执行以下操作:

foo bar;
std::cout << bar << std::endl;

另一方面,printf无法处理新类型,您必须编写函数来调用printf该类型的每个组件,其中每个组件已经是已知的类型printf(例如intor char *)。

printf在 C++ 代码中使用确实没有任何借口。我总是说,如果你要使用 C++,你应该使用它,而不是沉迷于旧世界:-) 如果你想使用printf,坚持使用 C。


如果您正在寻找如何让您的类在 iostreams 中使用的示例,请参阅我提供的关于执行此操作的代码的较早问题的答案。

于 2011-02-12T14:10:37.467 回答
0

取自http://forums.devshed.com/c-programming-42/difference-between-cout-and-printf-38373.html

cout 是 C++ 中 iostream 的对象。如果您使用的是 C++,则使用 cout,它运行良好。printf 在做一些相同的事情时,它是一个打印到标准输出的格式化函数。这主要用在C中。

所以 printf 在某种程度上是 cout 的老大哥,因为它允许你格式化字符串。

于 2011-02-12T14:11:05.890 回答