C++ 快读快写模板

这是目前我知道的最快的快读写了,使用 fread() 重写了 getchar() 函数,在调试时需要注释掉第二行(即重写 getchar() 行),提交代码时取消掉注释即可,因为 fread() 仅能使用文件操作读入

如果数据范围和int范围不一样记得修改数据类型

支持负数版

#include<bits/stdc++.h>
#define in read()
using namespace std;
#define getchar() (S==T&&(T=(S=B)+fread(B,1,1<<15,stdin),S==T)?EOF:*S++)
char B[1<<15],*S=B,*T=B;
inline int read()
{
    char c=getchar();
    int x=0,f=1;
    while(c<48){if(c=='-')f=-1;c=getchar();}
    while(c>47)x=(x*10)+(c^48),c=getchar();
    return x*f;
}
inline void mwrite(int a)
{
    if(a>9)mwrite(a/10);
    putchar((a%10)|48);
}
inline void write(int a,char c)
{
	mwrite(a<0?(putchar('-'),a=-a):a);
	putchar(c);
}
signed main()
{
	
    return 0;
}

不支持负数版

#include<bits/stdc++.h>
#define in read()
using namespace std;
#define getchar() (S==T&&(T=(S=B)+fread(B,1,1<<15,stdin),S==T)?EOF:*S++)
char B[1<<15],*S=B,*T=B;
inline int read()
{
    char c=getchar();
    int x=0;
    while(c<48)c=getchar();
    while(c>47)x=(x*10)+(c^48),c=getchar();
    return x;
}
inline void mwrite(int a)
{
    if(a>9)mwrite(a/10);
    putchar((a%10)|48);
}
inline void write(int a,char c)
{
	mwrite(a);
	putchar(c);
}
signed main()
{
	
    return 0;
}
posted @ 2019-12-04 13:27  人形魔芋  阅读(1560)  评论(0编辑  收藏  举报