C++ 快读写模板

这是目前我知道的最快的快读写了,但是我写的只有 int,要更长的话要改 long long 

下面是可以判断负数的版本

#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    char c=getchar();
    int x=0,f=1;
    while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
    while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getchar();
    return x*f;
}
void write(int a)
{
    if(a<0) putchar('-'),a=-a;
    if(a>=10)write(a/10);
    putchar(a%10+48);
}
int main()
{
    int m=read();
    write(m);
    return 0;
}

下面是不能判断负数的版本,会更快

#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    char c=getchar();
    int x=0;
    while(!isdigit(c))c=getchar();
    while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getchar();
    return x;
}
void write(int a)
{
    if(a>=10)write(a/10);
    putchar(a%10+48);
}
int main()
{
    int m=read();
    write(m);
    return 0;
}

在这里有一个新函数 

int isdigit(int c)

主要用于检查其参数是否为十进制数字字符

若参数c为阿拉伯数字0~9,则返回非0值,否则返回0

下面是免覆墙的资料原网页度娘快照

点我传送

猜你喜欢

转载自www.cnblogs.com/cmy-blog/p/11982359.html