发布于 2011-02-12 14:10:37
基本上,cout是输出到标准输出的C++方式,而printf是C方式。
C++ iostreams ( cout是其中之一)基于C++类,可扩展以处理新类。换句话说,您可以创建一个名为foo的类,然后执行以下操作:
foo bar;
std::cout << bar << std::endl;另一方面,printf无法处理新类型,您必须编写函数,为该类型的每个组件调用printf,其中每个组件已经是printf已知的类型(如int或char *)。
在printf代码中使用C++是没有任何借口的。我总是说,如果你要使用C++,你应该使用它,而不是沉溺于旧世界:-)如果你想使用printf,坚持使用C。
如果您正在寻找一个示例,说明如何允许您的类在iostreams中使用,请参阅an answer I提供的关于执行此操作的代码的前面的问题。
发布于 2011-02-12 14:13:08
cout会自动进行强制转换,并查找要打印的变量的类型。所以你可以做这样的事情:
int myint = 5;
cout << myint;cout会发现myint是int并打印出来。对于printf,您必须指定要打印的变量的类型:
int myint = 5;
printf("%d", myint);此外,cout比printf慢(因为它进行类型检测.),尽管在大多数实际应用程序中,您不会注意到性能差异。
发布于 2011-02-12 14:13:29
printf是用于在stdio库的标准输出上打印数据的函数,C的IO库主要是由于遗留的原因而保存在C++中,尽管有时它仍然很有用。
cout是来自iostreams库的C++流(特别是,它被定义为一个ostream &);iostreams库是执行IO的原生C++方法。
通常,与类似于printf的旧函数相比,使用iostreams更容易、更安全(这要感谢<<操作符重载而不是格式strings+varargs),而且它是执行IO的C++“惯用”方式,因此,除非您有特殊的需要,否则您应该使用它。
https://stackoverflow.com/questions/4978469
复制相似问题