在c++中什么时候用cout输出,什么时候用sprintf输出?sprintf看起来很简单啊,为什么又出来cout

在c++中什么时候用cout输出,什么时候用sprintf输出?sprintf看起来很简单啊,为什么又出来cout?

c++ 为了与C兼容,保留了printf和scanf.如果你学习面向对象编程的话,尽量不要混用,保持一至,c++输入输出中,编译系统对数据类型进行了严格的检查,凡是不正确的数据都不能通过统译,比较安全.
cout主要是与<<结合起来用.cout其实是一个对象,
cout<<"c++";相当于cout.operator<<("c++");
<< 是可以重载的,这就是printf做不到的.重载可以输出自己定义的数据类型,它的好处就不用我多讲了.
——————————————————————————————
*cout输出,功能是把要显示的数据输出到屏幕上
————————————————————————————————

在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。o(∩_∩)o关键就是这段啦
———————————————————————————————————
sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:

格式化数字字符串
sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代
itoa。
如:
//把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"

http://baike.baidu.com/view/1295144.htm
请参考上面网页,里面有比较详尽的解释。

总而言之,就是cout输出是到屏幕上面,sprintf输出是到字符串里面,
因为sprintf 就是string print function的缩写么
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-12
cout向流输出,要事先定义一个变量,来接收对应的输出。
sprintf输出字符串,要一个字符串变量来接收所有的输出,他还有一个作用就其它变量类型通过输出转换为字符串.
第2个回答  2009-08-12
sprintf?
一般输出是printf吧。。。printf是C语言的,但是C++里保存了下来,而cout是c++特有的,c里不能调用cout。
printf是无缓冲输出,cout是有缓冲输出。
你可以观察到,例如:
输出一个整数n,一般printf写作:
printf("%d%",n);
而cout写作:
cout << n;

所谓有缓冲就是c++编译时会帮你判断你输出的n是什么类型的,这里判断是int型的,从而输出;
而无缓冲输出就是你人工告诉c你要输出的n是int型的。

所以printf肯定比cout的时间复杂度低,因此一般都会使用printf,而cout主要是简便,但是如果一程序有很多输出的话最好用printf,要不然程序会特别慢。

不知道你参不参加编程的竞赛,竞赛中如果时间复杂度算在分数的判定之内的话,那么肯定是用printf啦……可是像%d这种东西你就必须得背了。
第3个回答  2009-08-12
c++ 为了与C兼容,保留了printf和scanf.如果你学习面向对象编程的话,尽量不要混用,保持一至,c++输入输出中,编译系统对数据类型进行了严格的检查,凡是不正确的数据都不能通过统译,比较安全.
cout主要是与<<结合起来用.cout其实是一个对象,
cout<<"c++";相当于cout.operator<<("c++");
<< 是可以重载的,这就是printf做不到的.重载可以输出自己定义的数据类型,它的好处就不用我多讲了.
还有,以前我用printf("%s",d),d是一个整数,结果出错,找了大半天才找出来,这种错误一不小心会要人命的.
相似回答