[是模板哦] 快速读入
程序员文章站
2022-03-25 16:11:12
原理(大概是) getchar()比scanf()和cin都要快 利用非常快的读入函数getchar(),一位一位将数字以字符形式读入,若读入的字符不为数字则结束,首先判断要读入的数字的正负,之后每读入一个字符就将字符转化为数字并*10然后加上它 代码 这里提供两种书写函数的方式 (注意:以下为整型 ......
原理(大概是)
getchar()比scanf()和cin都要快
利用非常快的读入函数getchar(),一位一位将数字以字符形式读入,若读入的字符不为数字则结束,首先判断要读入的数字的正负,之后每读入一个字符就将字符转化为数字并*10然后加上它
代码
这里提供两种书写函数的方式
(注意:以下为整型变量的快速读入函数,读入其他形式变量请自行修改变量类型)
1 #include<cstdio> 2 using namespace std; 3 4 inline int read1(){ 5 int f=1,x=0; 6 char s=getchar(); 7 while(s<'0' || s>'9'){ 8 if(s=='-') 9 f=-1; 10 s=getchar(); 11 } 12 while(s>='0' && s<='9'){ 13 x=x*10+s-'0'; 14 s=getchar(); 15 } 16 return x*f; 17 } 18 19 void read2(int &x){ 20 int f=1; 21 x=0; 22 char s=getchar(); 23 while(s<'0' || s>'9'){ 24 if(s=='-') 25 f=-1; 26 s=getchar(); 27 } 28 while(s>='0' && s<='9'){ 29 x=x*10+s-'0'; 30 s=getchar(); 31 } 32 x*=f; 33 } 34 35 int main(){ 36 int t1,t2; 37 t1=read1(); 38 read2(t2); 39 return 0; 40 }
我感觉还不错
友情链接: