[是模板哦] 快速读入

原理(大概是)

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 }

我感觉还不错

友情链接:安利一只小姐姐的博客

原文地址:https://www.cnblogs.com/tatarakogasa/p/9469594.html