cout和printf

时间:2011-02-12 14:07:40

标签: c++ printf cout

  

可能重复:
  printf vs cout in C++

cout和printf有什么区别?

4 个答案:

答案 0 :(得分:1)

cout会自动进行强制转换,并找出您要打印的变量的类型。所以你可以这样做:

int myint = 5;
cout << myint;

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

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

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

答案 1 :(得分:1)

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

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

一般来说,使用iostream比使用旧的类似printf的函数更简单,更安全(感谢<<运算符重载而不是格式字符串+ varargs),这是执行IO的C ++“惯用”方式,所以你应该使用它,除非你有特殊需要不这样做。

答案 2 :(得分:0)

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

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

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

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

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


如果您正在寻找如何在iostream中使用您的课程的示例,请参阅an answer我之前提供的有关代码的问题。

答案 3 :(得分:0)

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

cout是C ++中iostream的一个对象。如果您使用的是C ++,那么使用cout,它运行良好。 printf在做同样的事情时,它是一个格式化功能,可以打印到标准输出。这主要用于C。

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