fread快速读入

存个档吧。

正数读入:

#include<iostream>
#include<cstdio>
#include<algorithm>
#define il inline
using namespace std;
int a,b;
char buf[1 << 23],*p1=buf,*p2=buf,obuf[1 << 23],*O=obuf;
#define getchar() (p1==p2 && (p2=(p1=buf)+fread(buf,1,1 << 21,stdin),p1==p2)?EOF:*p1++)
template<typename T>
il void read(T &x) 
{
    char c=getchar();
    x=0;
	while(c<'0' || c>'9')
        c=getchar();
	while('0'<=c && c<='9') 
        x=(x << 3)+(x << 1)+(c^48),c=getchar();
}
template<typename T>
il void print(T x) 
{
    if (x>9) 
        print(x/10);
    *O++=x%10+'0';
}
int main()
{
    read(a),read(b);
    print(a+b),*O++='\n';
    fwrite(obuf,O-obuf,1,stdout);
    return 0;
}

正负数读入:

#include<iostream>
#include<cstdio>
#include<algorithm>
#define il inline
using namespace std;
int a,b;
char buf[1 << 23],*p1=buf,*p2=buf,obuf[1 << 23],*O=obuf;
#define getchar() (p1==p2 && (p2=(p1=buf)+fread(buf,1,1 << 21,stdin),p1==p2)?EOF:*p1++)
template<typename T>
il void read(T &x) 
{
    char c=getchar();
    int f=1;
    x=0;
	while(c<'0' || c>'9')
    {
        if (c=='-')
            f=-f;
        c=getchar();
    }
	while('0'<=c && c<='9') 
        x=(x << 3)+(x << 1)+(c^48),c=getchar();
    x=x*f;
}
template<typename T>
il void print(T x) 
{
    if (x<0)
        putchar('-'),print(-x); else
        {
            if (x>9) 
                print(x/10);
            *O++=x%10+'0';
        }
}
int main()
{
    read(a),read(b);
    print(a+b),*O++='\n';
    fwrite(obuf,O-obuf,1,stdout);
    return 0;
}
posted @ 2020-11-21 15:21  GK0328  阅读(194)  评论(0编辑  收藏  举报