c++中关于cout与printf的简单区别

  1. 原理不同
  2. cout与printf格式不同
  3. 输出效率不同

原理

std::cout<<“输出内容"std::endl;
其中<<操作符提取"输出内容”,然后进行重载,同时重载函数,根据"输出内容"的类型来重载不同类型的函数。

重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
(在cout中,相当于有很多cout的同名函数,但它们有不同类型的参数:如int float char等,当"输出内容"为char类型时,调用参数为char的cout函数)

同时在定义每一个流对象时,系统会在内存中开辟一段缓冲区,用来暂存数据(系统内有多个缓冲区)。此时当收到endl时,cout行会进行换行,同时刷新缓冲区。
当缓冲区满或者收到结束符时,会将缓冲区数据一并清空并在显示设备输出。

格式

cout: std::cout<<"任意类型函数"std::endl;
printf: printf(“其他+%转换+其他”,参数);
这里写图片描述

输出效率实验传送门⬇️

“详细比较试验点击这里–来自另一个博主”

该博主结论:输出时尽量使用cout,输入时尽量使用scanf.

cin cout效率没scanf printf高
主要有以下几个原因:

1.流输入输出对于基本类型来说使用很方便,不用手写格式控制字符串。
2.对于标准库的一些class来说,显然重载操作符也比自己写格式控制字符串要方便很多。
3.对于复杂的格式可以进行自定义操作符。
4.可读性更好(这个很多人有不同意见,见仁见智了)。


其实原理上来说流操作的效率比printf/scanf函数族更高,因为是在编译期确定操作数类型和调用的输出函数,不用在运行期解析格式控制字符串带来额外开销。不过标准流对象cin/cout为了普适性,继承体系很复杂,所以在对象的构造等方面会影响效率,因此总体效率比较低。如果根据特定的场景进行优化,效率可以更高一点。

C++中cin,cout是不是效率不如scanf,printf

十分正确,如果你是做io比赛的或者是做acm的,尽量不要用cin,cout,你试试打印99999999就知道,它们之间速度大概相差10几倍

  • 20
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: C++ printfcout 都可以用来输出内容到控制台。它们的区别主要在以下几个方面: 1. 使用方式:printf 是 C 语言的输出函数,需要在头文件引入 stdio.h,使用时需要按照格式字符串指定要输出的内容和格式。而 coutC++ 的输出流对象,不需要引入头文件,可以直接使用流操作符 << 进行输出。 2. 输出格式:printf 可以输出多种不同类型的数据,例如整型、浮点型、字符串等,需要使用不同的格式符号进行指定。cout 也可以输出多种类型的数据,但是不需要使用格式符号,可以根据数据类型自动选择合适的输出方式。 3. 可读性:cout 输出的内容更易读,因为它可以根据数据类型自动选择合适的格式,并且输出的内容更加清晰、易于理解。而 printf 需要手动指定格式,容易出现格式错误或者输出结果不易读的情况。 4. 执行效率:printf 的执行效率比 cout 高,因为 printf 是基于 C 语言的标准库实现的,输出的速度更快。而 coutC++ 的标准库实现的,相比之下,执行效率较低。 总的来说,printfcout 都可以用来输出内容到控制台,使用时需要根据具体情况选择合适的输出方式。如果对输出格式要求较高,建议使用 printf;如果对可读性要求较高,建议使用 cout。 ### 回答2: printfcout是C语言两个常用的输出函数。它们都可以用来将数据输出到屏幕上,但是它们有几个区别。 首先,printf是一个函数,它需要写在函数调用。而cout是一个C++的运算符,可以直接使用。因此,在C++使用cout要比在C语言使用printf更加方便。 其次,printf的输出格式比较严格,需要使用格式指示符来控制输出的格式。但是,cout则可以根据输出类型自动选择输出格式,不需要指定格式。 此外,printfcout的输出方式也有所不同。printf通过将输出数据格式化成一个字符串并输出到屏幕,而cout则使用流的方式逐个输出字符。 总的来说,printfcout之间有一些微妙的差别,但它们都是C语言常用的输出函数,开发人员可以根据需要选择适合自己的输出函数。对于新的C++项目,使用cout是更好的选择,但是在C语言项目printf是必不可少的。 ### 回答3: printf()和cout << 都是C++常见的输出函数,两者具有不同的特点和用法。 printf()是C语言的标准输出函数,需要包含<stdio.h>头文件才可以使用。其基本格式是:printf("format", arg1, arg2,...)。其,format指定输出格式字符串,arg1、arg2等表示输出的参数。printf()支持多种格式转换符,如%d表示输出一个整数,%f表示输出一个浮点数,%s表示输出一个字符串等等。 cout << 是C++的输出函数,需要包含<iostream>头文件才能使用。与printf()不同,cout << 的格式是:cout << expression1 << expression2 << ...。其,expression1、expression2等表示输出的表达式,可以是字符串、整数、浮点数等。cout << 会自动根据表达式的类型自动选择合适的输出方式,比如整数输出就使用十进制。 与printf()相比,cout << 更为直观、易于使用,而且可以避免格式化字符串等复杂操作。另外,cout << 支持链式操作,可以同时输出多个表达式,代码更加简洁。 总之,printf()和cout << 都是常用的输出函数,具有不同的特点和使用方式。在实际编程,根据具体的需求选择合适的输出函数会更为有效和便捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值