cin和scanf的速度差别】的更多相关文章

好长时间没有遇到这种问题了,以前虽然知道scanf比cin快,但是没想到快这么多,见图. 50万的数据. scanf输入: cin输入: 网上说用std::ios::sync_with_stdio(false);可以优化.优化完的速度: 还和纯scanf差好多.…
我们在c++ 中使用cin cout很方便但速度很慢,导致有些题目用cin就超时而用scanf则就ac了,那到底改用谁? cin慢是有原因的,其实默认的时候,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱.正因为这个兼容性的特性,导致cin有许多额外的开销,如何禁用这个特性呢?只需一个语句std::ios::sync_with_stdio(false);,这样就可以取消cin于stdin的同步了.…
cin输入更方便: 首先,cin 是个C++类型对象,它的类型是basic_istream,scanf 是个不定参数的函数,其次,cin 所属的类重载了 >> 运算符,使输入更简单了,比如 double d; cin>>d;而 scanf 不一样的,double d;scanf("%lf",&d);看起来麻烦一点.另外,cin 也更安全,不会发生内存溢出.char c; scanf("%lf",&c); //这时需要8个字节的…
  问题描述一:(分析scanf()和getchar()读取字符) scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的.但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因.下面先看一个很简单的程序:程序1:    #include <stdio.h>    int main()    {char ch1, ch2;scanf("%c", &ch1); scanf("%c", &…
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的特…
1.cin 该方法 1)假设cin读取整数.会自己主动忽略换行和空格.遇到文件结束标记.cin  >> a返回的数false     int a;     while(cin >> a){          cout << a <<endl;        }        return 0; eg:1, 2, 3 1 2 3 1 a 2 a 1 2 注意:cin读取到'a'字符的时候,假设是cin> (int);那么此时cin返回false, 同一时…
//#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…
cin是c++标准,scanf是在c中使用的 #include<cstdio> #include<iostream> #include<cstring> using namespace std; int main() { /* strlen包含在string.h头文件里,加上 #include <string.h> #include <cstring> // C语言头文件为 string.h 新c++编译器 ,前面加c ,后去掉 .h 输入cha…
cin慢是有原因的,其实默认的时候,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱.正因为这个兼容性的特性,导致cin有许多额外的开销,如何禁用这个特性呢?只需一个语句std::ios::sync_with_stdio(false);,这样就可以取消cin于stdin的同步了. (转自http://blog.csdn.net/yujuan_mao/article/details/8119529) 也…
http://blog.csdn.net/l2580258/article/details/51319387 void cin_read_nosync() { freopen("data.txt","r",stdin); std::ios::sync_with_stdio(false); for (int i=0;i<MAXN;i++) std::cin >> numbers[i]; }…