IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++之sync_with_stdio(false) -> 正文阅读

[C++知识库]C++之sync_with_stdio(false)

记录一下c++中std::ios::sync_with_stdio(false);的问题

C++中sync_with_stdio(false)是一种提升cin、cout效率的手段,使用C语言中的格式输入输出(scanf / prinrf)比C++中的标准输入输出(cin / cout)要快很多,在代码里加上std::ios::sync_with_stdio(false)?这个语句后,cin(cout)速度就会变得和scanf(printf)一样快

本质上是一个iostream与stdio流的同步的开关,C++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流同步到了一起。cin和cout要与stdio同步,中间会有一个缓冲,所以导致cin,cout语句输入输出缓慢,这时就可以用这个语句,取消cin,cout与stdio的同步,说白了就是提速,效率基本与scanf和printf一致。

#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
	DWORD start_time = GetTickCount();
	{
		//此处为被测试代码
		/*sync_with_stdio(bool turnc);,其中 turnc 默认为 true*/
		std::ios::sync_with_stdio(false);
		for (int i = 0; i < 100000; i++){
			cout << i << endl;
		}
	}
	DWORD end_time = GetTickCount();
	cout << "The run time is:" << (end_time - start_time)*1.0 / 1000 << "s!" << endl;//输出运行时间
	system("pause");
	return 0;
}

但是用了sync_with_stdio(false)之后不能与printf和scanf同用,否则会出错,这就涉及到sync_with_stdio(false)的局限性。

printf( ) 用法:将变量的内容输出到显示器上

scanf( )用法:通过键盘将数据输入到变量中

iosream与stdio流的对应关系,C头文件对应 #include <stdio.h>

C streamiostream
stdincin
wcin
stdoutcout
wcout
stderrcerr
wcerr
clog
wclog
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);

同时在默认的情况下cin绑定的是cout,每次执行<<操作符的时候都要调用flush,这样会增加IO负担。可以通过tie(0)来解除cincout的绑定,进一步加快执行效率。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:22:12  更:2022-10-08 20:26:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 9:09:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码