读入优化
首先,读入优化只是针对整数,getchar读字符是非常快,所以我们就用getchar。
绝对部分处理
getchar每次只能读一位,所以,每当读了一位时x*=10,为这一位“留位置”。
举个例子:现在读入了123,x为123,再读入了一个4,x*=10,变为了1230,现在它的最后一位空出来了,正好留给4,x+=4,x就变为了1234,当然,这里的’4’是char类型,需要减去’0’才是4,即:x=x*10+s-‘0’(s为当前输入的字符
细节
很多时候是有多余空格或者其他的乱码字符输入,为了防止bug,我们要严谨
代码1
void read(int &x)//'&'表示引用,也就是说x是一个实参,在函数中改变了x的值就意味着在外面x的值也会被改变
{
int f=1;//标记正负
x=0;//归零(这就是潜在bug,有可能传进来时x没有归零)
char s=getchar();//读入第一个字符
while(s<'0'||s>