哪位大佬有快读模板?

学术版

``` int qread(){ int w=1,c,ret; while((c=getchar())> '9'||c< '0') w=(c=='-'?-1:1); ret=c-'0'; while((c=getchar())>='0'&&c<='9') ret=ret*10+c-'0'; return ret*w; } ``` 快读的原理大概就是直接读取字符然后组装……
by 离散小波变换° @ 2020-02-24 23:19:54


$IO$全家桶$qwq$ ```cpp //IO #define pc(s) putchar(s) #define say(s) cout<<s<<endl namespace io { const int SIZ=55;int que[SIZ],op,qr;char ch; template<class I> il void gi(I &w) { ch=getchar(),op=1,w=0; while(!isdigit(ch)){if(ch=='-') op=-1;ch=getchar();} while(isdigit(ch)){w=w*10+ch-'0';ch=getchar();}w*=op; } template<typename T,typename... Args> il void gi(T& t,Args&... args){gi(t);gi(args...);} template<class I> il void print(I w) { qr=0;if(!w) putchar('0');if(w<0) putchar('-'),w=-w; while(w) que[++qr]=w%10+'0',w/=10; while(qr) putchar(que[qr--]); } } using io::gi; using io::print; ```
by MikukuOvO @ 2020-02-24 23:22:05


@[慕蓉樱雪](/user/234074) fread似乎更快一点qwq ```cpp #define endfile fclose(stdin);fclose(stdout); namespace IO{ char buf[1<<15],*S,*T; inline char gc(){ if (S==T){ T=(S=buf)+fread(buf,1,1<<15,stdin); if(S==T)return EOF; }return *S++; } inline int read(){ reg int x;reg bool f;reg char c; for (f=0; (c=gc())<'0'||c>'9'; f=c=='-'); for (x=c^'0'; (c=gc())>='0'&&c<='9'; x=(x<<3)+(x<<1)+(c^'0')); return f?-x:x; } const int _outlim=1<<20; char outbuf[_outlim+5];int cnt; inline void pc(char c){ outbuf[cnt++]=c; if (cnt==_outlim) fwrite(outbuf,1,cnt,stdout),cnt=0; } inline void write(int x){ if(x>9)write(x/10);pc(x%10^'0'); } inline void end(){ if(cnt)fwrite(outbuf,1,cnt,stdout);endfile; } } ```
by Marser @ 2020-02-24 23:22:50


``` const int SIZ =1e5; char bef[SIZ+3],*p1=NULL,*p2=NULL; char getc(){ if(p1==p2) p1=bef,p2=bef+fread(bef,1,SIZ,stdin); return p1==p2?EOF:*p1++; } int qread(){ int w=1,c,ret; while((c=getc())> '9'||c< '0') w=(c=='-'?-1:1); ret=c-'0'; while((c=getc())>='0'&&c<='9') ret=ret*10+c-'0'; return ret*w; } char readc(){ char c; while((c=getc())==' '||c=='\n'||c=='\r'); return c; } int readln(char *s){ int len=0,c; while((c=getc())==10||c==13); if(c==EOF) return -1; s[len++]=c; while((c=getc())!=10&&c!=13&&c!=EOF) s[len++]=c; s[len]=0; return len; } int reads(char *s){ int len=0,c; while((c=getc())==10||c==13||c==32); if(c==EOF) return -1; s[len++]=c; while((c=getc())!=10&&c!=13&&c!=32&&c!=EOF) s[len++]=c; s[len]=0; return len; } ``` `fread`快读+字符串读入全家桶
by 离散小波变换° @ 2020-02-24 23:23:16


怎么一个比一个长
by Marser @ 2020-02-24 23:23:21


@[Marser](/user/17930) ~~因为一个比一个的桶大呀(雾~~
by 离散小波变换° @ 2020-02-24 23:24:07


```cpp #include<cstdio> #include<cctype> #define gc (l==r&&(r=(l=c)+fread(c,1,1<<21,stdin),l==r)?EOF:*l++) char c[1<<21],*l=c,*r=c; inline int read() { int x=0; char ch=gc; while (!isdigit(ch)) ch=gc; while (isdigit(ch)) x=x*10+(ch^48),ch=gc; return x; } ```
by Celestial_Scarlet @ 2020-02-24 23:27:05


只支持读入int型非负数( 需求不同的话请自行修改(
by Celestial_Scarlet @ 2020-02-24 23:27:59


@[慕蓉樱雪](/user/234074) ```cpp #define read(x) cin>>x #define print(x) cout<<x; ``` 狗头(
by Retired_lvmao @ 2020-02-24 23:29:07


有double的吗。。。
by 樱雪喵 @ 2020-02-24 23:30:29


| 下一页