printf(" ")和cout<<两个输出有啥区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了printf(" ")和cout<<两个输出有啥区别?相关的知识,希望对你有一定的参考价值。
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设置宽度的函数名字太长了,也可以考虑自己写一个。 参考技术A printf是C标准库<stdio.h>的函数,是C中的常用方法;
operator<<是C++标准库<iostream>类ostream的成员函数,表示向流内插入信息,cout <<表示向cout流插入信息。
在正常情况下,printf调用的stdout和cout <<调用的cout是相通的。
但是printf使用可变参数,函数内无法确定参数的类型,只能通过控制符确定;
而operator<<则使用函数重载,可以控制输出类型,更加安全。 参考技术B printf输出不同类型的数据时需指定格式字符串,如输出一个字符串用%s,输出一个整数用%d,输出一个字符用%c,输出一个浮点数用%f或%lf,而cout<<可以直接输出各种类型的变量,甚至通过重载<<运算符,可以输出类对象和结构体类型的变量。 参考技术C 没有任何区别,两种不同实现而已,效果差不多 参考技术D 时间和空间问题,最好用print
以上是关于printf(" ")和cout<<两个输出有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
我用mongodb group查询,查询之后只有一个分组字段和count字段,怎么显示更多字段?
chr a ; printf("%d",a); 和 int a; printf ("%d",a);有区别吗 或者交换下??
C语言中 printf语法printf("%d %d %c\n",a,b,c);和printf("%d %d %c\n",&a,&b,&c);啥