考虑一种较为常见的极端情况:输入只含 232 以内的非负整数,并且只使用空格,\n 和 \r 分隔,这中情况下有比以下写法更快的吗:
char gtc(){
static char tmp[100000],*p=0,*top=0;
if(p==top){top=(p=tmp)+fread(tmp,1,100000,stdin);}
return *p++;
}
void read(unsigned int& x){
char c;
while((c=gtc())<'0');
x=c^'0';
while((c=gtc())>='0')x=(x<<1)+(x<<3)+(c^'0');
}