普通读入:
#include<iostream>
#include<cstdio>
#include<ctime>
using namespace std;
const int maxn=10000000;
int numbers[maxn];
void cin_read_nosync();
void scanf_read();
int main()
{
freopen("data.in","r",stdin);
int start=clock();
//cin_read_nosync();
scanf_read();
printf("%.3lf\n",double(clock()-start)/CLOCKS_PER_SEC); //测试代码时间
fclose(stdin);
return 0;
}
void cin_read_nosync()
{
ios::sync_with_stdio(false); //取消cin与stdin的同步
cin.tie(0); //解除cin与cout的绑定,进一步加快执行效率
for(int i=0;i<maxn;i++)
cin>>numbers[i];
}
void scanf_read()
{
for(int i=0;i<maxn;i++)
scanf("%d",&numbers[i]);
}
快写:
inline void write(int x)
{
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
快读:
int readin()
{
char aa;
int vv=0,ff=1;
aa=getchar();
while(!isdigit(aa))
{
if(aa=='-') ff=-1;
aa=getchar();
}
while(isdigit(aa))
{
vv=(vv<<3)+(vv<<1)+(aa^48);
aa=getchar();
}
return vv*ff;
}
fread读入(大杀器):
#include <cstdlib>
#include <ctime>
#include <cstdio>
#include <iostream>
using namespace std;
const int MAXN = 10000000;
const int MAXS = 60*1024*1024;
int numbers[MAXN];
char buf[MAXS];
void analyse(char *buf,int len); //字符串转化为数组的函数
void fread_analyse();
int main()
{
int start = clock();
freopen("data.in","rb",stdin);
fread_analyse();
printf("%.3lf\n",double(clock()-start)/CLOCKS_PER_SEC);
for(int i=0;i<5;i++)
printf("%d ",numbers[i]);
fclose(stdin);
return 0;
}
void analyse(char *buf,int len)
{
int i=0,t=1;
numbers[0]=0;
for (char *p=buf;*p && p-buf<len;p++)
if (*p == ' ')
numbers[++i]=0,t=1;
else if(*p == '-')
t=-1;
else
numbers[i] = (numbers[i] * 10 + (*p - '0') * t);
}
void fread_analyse()
{
int len = fread(buf,1,MAXS,stdin); //把整个文件读入一个字符串
buf[len] = '\0';
analyse(buf,len);
}