输入与输出

普通读入:

#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);  
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值