[是模板哦] 快速读入

2018-08-14 09:53:36来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

原理(大概是)

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 }

 

我感觉还不错

 

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

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[是题解哦] 洛谷 P1342 请柬

下一篇:uva11768 Lattice Point or Not