namespace FastIO{
class In{
public:
template<typename T>
inline In &operator>>(T &x)
{
x=0;bool f=0;
char c=getchar();
while(c<'0'||c>'9')
f|=(c=='-'),c=getchar();
while(c>='0'&&c<='9')
x=x*10+c-'0',c=getchar();
if(c=='.')
{
c=getchar();double dot=0.1;
while(c>='0'&&c<='9')
x+=(c-'0')*dot,dot*=0.1,c=getchar();
}
return (f?x=-x:x),*this;
}
inline In &operator>>(char &x)
{
while(isspace(x=getchar()));
return *this;
}
inline In &operator>>(char *x)
{
char c=getchar();
while(isspace(c)) c=getchar();
while(!isspace(c)&&~c) *(x++)=c,c=getchar();
return *x=0,*this;
}
inline In &operator>>(string &x)
{
char c=getchar();x.clear();
while(isspace(c)) c=getchar();
while(!isspace(c)&&~c) x.push_back(c),c=getchar();
return *this;
}
inline In &operator>>(In &in){return in;}
};
class Out{
private:
char buf[35];
short dot=6,top=0;
public:
template<typename T>
inline Out &operator<<(T x)
{
if(x<0) putchar('-'),x=-x;
do{buf[++top]=x%10,x/=10;}while(x);
while(top) putchar(buf[top--]|'0');
return *this;
}
inline Out &operator<<(char c){return putchar(c),*this;}
inline Out &operator<<(string x)
{
for(auto c:x) putchar(c);
return *this;
}
inline Out &operator<<(char *x)
{
while(*x) putchar(*(x++));
return *this;
}
inline Out &operator<<(const char *x)
{
while(*x) putchar(*(x++));
return *this;
}
inline Out &operator<<(double x)
{
snprintf(buf,sizeof(buf),"%.*lf",dot,x);
return (*this)<<buf;
}
inline Out &operator<<(Out &out){return out;}
inline Out &setdot(const int n){return dot=n,*this;}
};
In fin;Out fout;
inline Out &setdot(const int n,Out& out=fout){return fout.setdot(n),out;}
inline In &getline(char *x,In& in=fin)
{
char c=getchar();
while(!(c==' '||!isspace(c))) c=getchar();
while(c==' '||!isspace(c)) (*x++)=c,c=getchar();
return *x=0,in;
}
inline In &getline(string &x,In& in=fin)
{
char c=getchar();x.clear();
while(!(c==' '||!isspace(c))) c=getchar();
while(c==' '||!isspace(c)) x.push_back(c),c=getchar();
return in;
}
}
using namespace FastIO;
标签:模版,char,operator,while,快读,inline,isspace,getchar
From: https://www.cnblogs.com/CloudCC/p/18534561