可能重复:
printf vs cout in C++
cout和printf有什么区别?
答案 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}}(例如int
或char *
)。
在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的大哥,因为它允许你格式化字符串。