本文为https://www.byvoid.com/zhs/blog/fast-readfile的验证性文章 --------------------------------------------------------------------------- 首先生成一千万个随机数 #include<cstdio> #include<ctime> #include<cstdlib> int main () { freopen("data.txt",…
scanf和cin的差异 引例:http://www.cnblogs.com/shenben/p/5516996.html 大家都知道,在C++中有两种输入.输出方式—scanf和cin,但是,它们之间存在的差异,你们知道么?下面请看测评吧!   测试题目: 输入n个数,输出n个数.   测试环境:ubuntu12.04 i3CPU 4G内存 7200转硬盘 测试结果: 测试结果使用linux的time测试时间,结果如下:   10000组数据时: real代表程序执行总时间,user代表用户输…
一开始入c++的时候成天跑cin,cout 直到有一天用cin,cout超时 才知道scanf比cin快的多 但是后来又听说加了ios::sync_with_stdio(false);的cin跟飞一样 那么到底哪个快呢? 咱们来做个小测试 题目选择:https://www.luogu.org/problem/show?pid=3368#sub 树状数组模板2(因为这题数据比较大) 首先是龟速的cin与cout 成功的T掉三个点 =.= 那么scanf呢?? 完美的完成任务!! 身负众望的ios:…
很对人对于字符串的输入输出一直是比较模糊的,今天总结一下几个常用的输入流符号对于输入字符串时的区别: 1.scanf(),首先 它遇到空格或回车键(\n)就会结束,并且会将回车符算入字符串中: 2.cin ,对于cin来说,它不会把回车符(\n)算进字符串中,其他的与scanf()相同: 3.gets()和 getline(), 当你定义了一个字符数组,那么读入一行只能用gets(),需要注意的是: (1)它只在遇到回车键时结束输入: (2)它不会将回车键算到字符串中: 输出: 对于输出来说,你…
在c++中,我们使用cin和cout进行输入输出会比用scanf和printf更加简洁和方便,但是当程序有大量IO的时候,使用cin和cout进行输入输出会比用scanf和printf更加耗时, 在数据量较小时则无明显差别.如果没要求效率的话,用cin和cout或scanf和printf都行:但是如果有效率要求的话,就另说了,比如在刷OJ的时候经常会遇到超时的问题, 这时就要考虑程序的效率了.具体如下: 在有大量IO的情况下,如果你仍然想用cin.cout,也有一种办法能解决效率问题,就是在主函…
{ "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "sel…
笔试的时候经常遇到突然string s;cin>>s; 有的时候编译会错误,不知道为什么. 今天在练习枚举类型的时候,也遇到这样一个问题. enum weekday{Monday,Tuesday} day; cin>>day;//报错 scanf("%d",&day);//正常 周纯洁的书上也都是用scanf;看样子scanf和printf不能随便丢弃啊.毕竟是标准输入输出流,没有缓存区 scanf是格式化输入,printf是格式化输出. cin是输入流…
在论坛上看到有人提出一个如下的问题,在此总结一下. 原问题: http://topic.csdn.net/u/20110414/22/90d0606c-9876-48e4-9b69-bd8bd8a41897.html #include <stdio.h> int main() { int ival1 = 123, ival2 = 1; char ch = 't'; scanf("%d%d", &ival1, &ival2); scanf("%c&q…
//#include <iostream> #include <stdio.h> //#include <fstream> //using namespace std; #define MAXN 501 #define INF 0x3fffff /*Accepted 676K 750MS*/ /*528K 157MS*/ //var int n; int num; int a[MAXN][MAXN]; //fstream fin; //function void pri…
我的实验机器配置是: 处理器:Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz 2.40GHz 随机访问存储器:4.00GB 操作系统:Windows10 集成开发环境:Visual Studio 2017 我将stdin与输入文件链接在一起,依次在104.105.106.107量级的数据上进行测试,得到结果如下. 画成柱状图如下: 以10000数量级的时间为1,可得到这样的表格: cin/scanf的时间比如下: 由此可见,cin读入相同数据的时间是scanf的…
#include<iostream>#include<stdio.h>#include<string.h>#include<string>using namespace std; int main(){ char s[100]; string ss; scanf("%s",s); //空格回车结束 for(int i=0;i<strlen(s);i++) printf("%c",s[i]); printf(&qu…
需要连续从标准输入读取数据时,可以采用下面两种不同的方式判断文件结束: [cpp] view plaincopy   int i; while(scanf("%d",&i) != EOF){do whatever...} while(cin >> i){do whatever...} 首先看scanf,当成功读取时返回读取的项的数目,如:scanf("%d %d",&i,&j)返回2,scanf("%d %f %s&qu…
最近在写一个Java程序时遇到一个问题,就是如何在Java里面输入数值,又叫做获取键盘输入值. 因为c语言里面有scanf(),C++里面有cin(),python里面有input().Java里面有三种方法: First:从控制台接受一个字符并打印 import java.io.*; import java.io.IOException; public class test { public static void main(String args[]) throws IOException{…
输入输出流的控制符 控制符 作 用 dec 设置数值的基数为10 hex 设置数值的基数为16 oct 设置数值的基数为8 setfill(c) 设置填充字符c,c可以是字符常量或字符变量 setprecision(n) 设置浮点数的精度为n位.在以一般十进制小数形式输出时,n代表有效数字.在以fixed(固定小数位数)形式和 scientific(指数)形式输出时,n为小数位数 setw(n) 设置字段宽度为n位 setiosflags( ios::fixed) 设置浮点数以固定的小数位数显示…
单字符I/O:getchar()和putchar() #include<stdio.h> int main(void) { char ch; while ((ch = getchar()) != '#') putchar(ch); ; } #include<stdio.h> int main(void) { char ch; while ((ch = getchar()) != EOF) //EOF是代表文件结尾的标志 putchar(ch); ; } 重定向和文件 重定向输入让程…
好长时间没有遇到这种问题了,以前虽然知道scanf比cin快,但是没想到快这么多,见图. 50万的数据. scanf输入: cin输入: 网上说用std::ios::sync_with_stdio(false);可以优化.优化完的速度: 还和纯scanf差好多.…
之前上传UVa227 puzzle时,好不容易AC了,但发现自己用时50(ms),而在VJ上看到人家都是40ms.20ms,于是打开一个20ms的代码查看人家强在哪里.但结果研究了半天感觉差不多,于是想着应该不是算法的问题.然后又想到,网上提交的答案,大家都是用scanf和printf写的,而我用的cin cout,而这题的确需要大量的输入输出,于是就想着把所有cin cout改成scanf printf.结果 -.- 上面c++版,下面c版. 于是我很好奇C的输入输出方法和C++提倡的方法为什…
竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式.相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据.还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急.难道C++真的低Pascal一等吗?答案是不言而喻的.一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中很不错,但具体如何从没试过,因此今天就索性把能想到的所有的读数据的方式都测试了一边,结果是惊人的. 竞赛中读数…
2013-07-09 18:55:42 EOF是文件的结束符,具体可以作为文本文件的结束符,也可以作为键盘输入char类型数据时的结束符.对于不同的系统,EOF的定义可能不同,一般定义为-1.因为char类型的数据范围是0~255,不可能是-1,EOF定义为0~255之外的数据理论上都是可以的. 一般在C语言中用getchar()函数或scanf获取char类型时,可用EOF作为结束符.但对于C++,若用getchar()函数或scanf获取char类型时,也可用EOF作为结束符,这是兼容C的特…
cin输入更方便: 首先,cin 是个C++类型对象,它的类型是basic_istream,scanf 是个不定参数的函数,其次,cin 所属的类重载了 >> 运算符,使输入更简单了,比如 double d; cin>>d;而 scanf 不一样的,double d;scanf("%lf",&d);看起来麻烦一点.另外,cin 也更安全,不会发生内存溢出.char c; scanf("%lf",&c); //这时需要8个字节的…
关于ACM的输入输出(一) 一般来说ACM的现场赛会规定输入输出 或者是文件输入标准输出 也可能是文件输入文件输出 如果没有规定的话那么一般就是标准的输入输出了 那说一下输入输出的重定向 一般用下面两种方法 c++常用: #include <fstream.h> ifstream filein("data.in"); // 定义一个文件输入流 ofstream fileout("data.out"); //cout<< --> file…
update&fixed: 经过实测,io解绑在各大oj以及本地评测软件上都劣于scanf 所以在大数据的情况下还是推荐尽量使用scanf! ! ! ! 众所周知,C++自带了各种输入方式 比如cin,应该是许多人第一个接触的输入方式. 然而,总有些数据极大的毒瘤题,甚至必须加快读入读出才能保证勉强不超时. 所以,咱就来研究一下各种读入与输出的效率. 本次测试仅仅针对int类型数据 输入 首先是最常见的,cin与scanf. 在很久以前,老师就告诉过我们,scanf比cin快. 40w数据量下的…
零散知识点: 非格式化输入输出:getchar().putchar() 格式化输入输出   :scanf().printf() 字符串输入输出   :gets() 或 scanf().puts() 或 printf(). gets()函数以换行符或文件结束符EOF作为输入的结束标志,因此,在输入的字符串中允许包含空格或制表符. scanf()函数则以空格.制表符.换行符和文件结束符EOF作为输入的结束标志,因此,在输入的字符串中不允许包含这些字符. puts()函数在字符串显示完毕后换行. pr…
ios::sync_with_stdio(false); \\取消同步,cin,cout的速度就不慢了!!…
1068 万绿丛中一点红(20 分) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的颜色差充分大. 输入格式: 输入第一行给出三个正整数,分别是 M 和 N(≤ 1000),即图像的分辨率:以及 TOL,是所求像素点与相邻点的颜色差阈值,色差超过 TOL 的点才被考虑.随后 N 行,每行给出 M 个像素的颜色值,范围在 [0,2​24​​) 内.所有同…
一.从C到C++1.引用int b;int &a = b;//a是引用类型       定义的时候加&  表示引用   其余都是取地址  a是b别名 使用a和使用b是一样的  主要用于函数传参 引用和指针的区别:引用 相当于外号  不占内存   引用是常量   定义的时候就一定要赋值   不能修改指向指针  指针变量  存放的是地址  占内存  定义的时候并需要赋值 引用 主要在函数传递参数  提高效率  效率高于指针 int &a = b;//定义的时候  是引用&a;/…
记录一些之前没见过的代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; #define INF 2000000000ll #define SIZE 100000ll #define pb push_back //#define fin cin int main() { ifstream fin("input.txt",ios::in); ios_base::sync_with_std…
快读&快写模板 快读快写,顾名思义,就是提升输入和输出的速度.在这里简单介绍一下几种输入输出的优劣. C++ cin/cout 输入输出:优点是读入的时候不用管数据类型,也就是说不用背scanf/printf的%d.%c.%lld等繁琐的东西,但是缺点就是比scanf/printf慢一些. C scanf/printf 输入输出:与C++对比,比cin/cout快一些,但使用方法细节比较多,容易出锅. 快读/快写:只能处理整数读入/输出,但是要比标准输入输出函数都快得多. 一般来讲,快读快写在针…
$\mathcal{P.S:}$ 对于输入方式及其优化有了解的大佬可直接阅读$\mathcal{Part}$ $\mathcal{2}$ 特别鸣谢:@归斋目录: $\mathcal{Part}$ $\mathcal{1}$                                                       读入方式们的万年争斗 $\mathcal{Part}$ $\mathcal{2}$                                           …
Drying Time Limit: 2000MS Memory Limit: 65536K Description It is very hard to wash and especially to dry clothes in winter. But Jane is a very smart girl. She is not afraid of this boring process. Jane has decided to use a radiator to make drying fas…