关于C++快速读入

学术版

我只会修改变量类型![kk](https://cdn.luogu.com.cn/upload/pic/62227.png) ```cpp template<typename T> inline T read() { T f = 1, x = 0; char c = getchar(); while(!isdigit(c)) {if(c == '-') f = -1; c = getchar();} while(isdigit(c)) {x = x * 10 + c - '0'; c = getchar();} return x * f; } ``` 读入函数调用方式为 `read<xx>()`,其中 xx 为你需要的变量类型
by Eason_AC @ 2021-02-26 00:18:32


想怎么写就怎么写 ```cpp #define isdigit(ch) (ch >= '0' && ch <= '9') const int __S=(1<<20)+5;char __buf[__S],*__H,*__T; char gc() { if(__H==__T) __T=(__H=__buf)+fread(__buf,1,__S,stdin); if(__H==__T) return -1;return *__H++; } template <typename T> T read(T &n) { int f = 1; char ch = gc(); n = 0; for (; !isdigit(ch); ch=gc()) if (ch == '-') f = -1; for (; isdigit(ch); ch=gc()) n = (n << 3) + (n << 1) + (ch ^ 48); return n *= f; } ```
by PragmaGCC @ 2021-02-26 06:39:43


```cpp struct READ{ char c,w; inline READ(){ c=getchar();} template<typename type> inline READ& operator >>(register type& num){ for(w=1;'0'>c||c>'9';c=getchar()) w=c=='-'? -1:1; for(num=0;'0'<=c&&c<='9';c=getchar()) num=num*10+(c-'0'); return num*=w,*this; } }cin; ```
by warzone @ 2021-02-26 07:58:25


``` inline int read() { char ch=getchar(); int x=0,cf=1; while(ch<'0'||ch>'9') { if(ch=='-') cf=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); } return x*cf; } inline string reads() { char ch=getchar(); string s=""; while(ch<'a'||ch>'z') ch=getchar(); while(ch>='a'&&ch<='z') { s+=ch; ch=getchar(); } return s; } ```
by 神蝶涵光 @ 2021-02-26 11:38:56


|