2017-08-27 10:26:19
writer:pprp
进行测试如下四种输入方式:
1、scanf
2、cin
3、用了ios::sync_with_stdio(false);的cin
4、自己写的输入函数(如下)
inline int read()
{
int X=,w=;
char ch=;
while(ch<'' || ch>'')
{
if(ch=='-') w=-;
ch=getchar();
}
while(ch>='' && ch<='') X=(X<<)+(X<<)+ch-'',ch=getchar();
return X*w;
}
测试先随机生成了1000以内数,保存在out.txt文件中,大概2M的内容
开始测试输入:
代码如下:
/*
@theme:ACM输入输出测试
@writer:pprp
@declare:测试scanf,优化的输入,和cin
@date:2017/8/26
*/
#include <bits/stdc++.h>
#include <iostream>
#include <time.h>
#include <windows.h>
#include <unistd.h> using namespace std;
const int maxn = ;
int a[maxn],b[maxn]; inline int read()
{
int X=,w=;
char ch=;
while(ch<'' || ch>'')
{
if(ch=='-') w=-;
ch=getchar();
}
while(ch>='' && ch<='') X=(X<<)+(X<<)+ch-'',ch=getchar();
return X*w;
} int main()
{
ios::sync_with_stdio(false);
freopen("out.txt","r",stdin);
// freopen("out.txt","w",stdout); clock_t c = clock();
for(int i = ; i < maxn ; i++)
{
// scanf("%d%d",&a[i],&b[i]);
// cin >> a[i] >> b[i];
// a[i] = read();
// b[i] = read();
}
clock_t d = clock();
cout << d - c << endl; fclose(stdin);
fclose(stdout);
}
测试结果是:时间:自己写的输入函数 < 有ios::sync_with_stdio(false)的cin < scanf < cin
所以在ACM输入要求严格的情况下,建议采用ios::sync_with_stdio(false)的cin
如果要求更加严格那就采用,自己写的输入函数