cin和printf哪个效率高?这篇文章告诉你精华

因为c++是c的扩展,所以c++为c提供了兼容。在c++里面,也可以使用c的语法。对I/O方面来说,

可以使用cin,cout,printf,scanf。但是因为兼容了printf和scanf,会导致有多个缓存区,编译器为了防止我们用户使用时出现错误,所以将c++中的cin、cout和c中的printf、scanf捆绑在一起了,使用同一个缓存区,避免我们输出输入的错误。而这个缓冲区是c的缓存区,所以使用cin和cout时速度会慢很多。

为了使cin、cout速度更快,我们可以在输入输出前使用   ios::sync_with_stdio(0);cout.tie(0);   这条语句,他的作用是将cin和cout从c中的缓冲区里面拉出来,创建一条通道直接输出输入(这个应该也是一个缓冲区把,我觉得的,毕竟要输入输出的话要有缓冲),使得cin和cout使用过程中不经过c的缓冲区,也可以理解为取消与printf的捆版,从而加快了cin、cout的速度。(基本上和printf差不多)

注意,如果使用了  ios::sync_with_stdio(0);cout.tie(0);  取消绑定后就不可以再使用printf和scanf了,会导致有两条通道输入输出造成混乱。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值