可能重复:
C++ 中的 printf vs cout
cout 和 printf 有什么区别?
cout 自动进行强制转换并找出您尝试打印的变量的类型。因此,您可以执行以下操作:
int myint = 5;
cout << myint;
cout 将检测到 myint 是一个 int 并打印它。使用 printf,您必须指定要打印的变量的类型:
int myint = 5;
printf("%d", myint);
此外, cout 比 printf 慢(因为它进行类型检测......),尽管在大多数实际应用中,您不会注意到性能差异。
printf
是用于在库的标准输出(stdio
C 的 IO 库)上打印数据的函数。它保留在 C++ 中主要是出于遗留原因,尽管有时它仍然有用。
cout
是来自 iostreams 库的 C++ 流(特别是,它被定义为 a ostream &
);iostreams 库是执行 IO 的本机 C++ 方式。
一般来说,使用 iostreams 比旧的类似 printf 的函数更容易和更安全(感谢<<
运算符重载而不是格式字符串 + 可变参数),并且它是执行 IO 的 C++“惯用”方式,因此除非您有特定的不需要这样做。
基本上,cout
是输出到标准输出的 C++ 方式,而printf
C 方式。
C++ iostreams(其中cout
之一)基于 C++ 类并且可扩展以处理新类。换句话说,您可以创建一个名为的类foo
,然后执行以下操作:
foo bar;
std::cout << bar << std::endl;
另一方面,printf
无法处理新类型,您必须编写函数来调用printf
该类型的每个组件,其中每个组件已经是已知的类型printf
(例如int
or char *
)。
printf
在 C++ 代码中使用确实没有任何借口。我总是说,如果你要使用 C++,你应该使用它,而不是沉迷于旧世界:-) 如果你想使用printf
,坚持使用 C。
如果您正在寻找如何让您的类在 iostreams 中使用的示例,请参阅我提供的关于执行此操作的代码的较早问题的答案。
取自http://forums.devshed.com/c-programming-42/difference-between-cout-and-printf-38373.html
cout 是 C++ 中 iostream 的对象。如果您使用的是 C++,则使用 cout,它运行良好。printf 在做一些相同的事情时,它是一个打印到标准输出的格式化函数。这主要用在C中。
所以 printf 在某种程度上是 cout 的老大哥,因为它允许你格式化字符串。