printf和cout是有本质上的区别:
printf是C语言的输出函数,C++兼容C所以也可以在C++中使用;cout是C++专有的输出流ostream对象;虽然他们在输出的时候大多数情况都能达到同样的效果,但是还是有区别的。
我们在学习C++的时候要有面向对象的编程思维,所以在C++编程中建议使用cout对象进行输出。有人说printf效率高,不建议用cout,这么说的话C++都不用学了,C的运行效率不是更高吗?
为什么说在
面向对象编程时候要用cout呢,最主要的原因是很多时候我们要输出自定义类型(对象),这时候printf函数就显得非常麻烦。而通过
运算符<<
重载我们可以非常方便的输出自定义的对象数据。这么做还有一个好处就是它会根据你的
数据类型自动调用对应的函数进行输出,更为安全。
同理scanf和cin对象也是这个道理,所以在面向对象的编程尽可能使用cout, cin,如果有明显的优势可以用printf函数,比如输出固定宽度的数值或者
字符串我个人觉得printf好用,cout设置宽度的函数名字太长了,也可以考虑自己写一个。