读入各种类型的代码
得
再将
从而
读int
inline int read()
{
char c=getchar();int sum=0,f=1;
while(!(c>='0'&&c<='9')) {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {sum=((sum<<1)+(sum<<3))+(c-'0');c=getchar();}
return sum*f;
}
读long long
inline long long read()
{
char c=getchar();long long sum=0,f=1;
while(!(c>='0'&&c<='9')) {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {sum=((sum<<1)+(sum<<3))+(c-'0');c=getchar();}
return sum*f;
}
读char
用getchar/scanf容易误读回车,空格
此方法支持选择是否读空格
char cread(bool k)//k==1,支持空格
{
char c=getchar();
while(c=='\n'||c=='\r'||!(c!=32||k)) c=getchar();
return c;
}
读string
支持选择是否读空格
string sread(bool k)//k==1,支持空格
{
string s;
s.clear();
char c=getchar();
while(c=='\n'||c=='\r'||!(c!=32||k)) c=getchar();
while(c!='\n'&&c!='\r'&&(c!=32||k)) s+=c,c=getchar();
return s;
}
带" "的输出字符
void cpt(char c,bool b)//b==1,输出回车,否则不输出
{
printf("\"%c\"",c);
if(b) printf("\n");
return;
}
带" "的输出字符串
void spt(string s,bool b)//b==1,输出回车,否则不输出
{
cout<<"\""<<s<<"\"";
if(b) printf("\n");
return;
}
upd 2020.1.11 简化了一些输入方式