快速输入输出

cin和cout慢啊!!!

cin和cout慢啊!!!

cin和cout慢啊!!!

有些题用cin和cout输入了/输出了很多数字后就TLE了。。。

scanf和printf相比来说快点,不过也不算太快。

怎么样才能达到更快的输入输出速度呢?

答案是字符法。

void qin(int &x){//快速输入qin(quick in)
    int base=1,num;
    char c=getchar();
    while(!(c=='-'||c>='0'&&c<='9'||c==EOF))c=getchar();
    if(c==EOF)exit(0);//exit(0)也可以改成别的。。。例如 {x=-1e9;return;}
    if(c=='-')base=-1,c=getchar();//如果先输入了个‘-’就是个负数
    num=c-'0';
    c=getchar();
    while(c>='0'&&c<='9'){//n进制转十进制标准方法。。。不过是十进制转十进制
        num*=10;
        num+=c-'0';
        c=getchar();
    }
    x=num*base;
}
char integ[50];
void qout(int x){//快速输出qout(quick outif(x<0)putchar('-'),x=-x;//保证后面操作用的数字非负数,不然就会变成符号了
    int len=0;
    do{
        integ[len++]=x%10+'0';
        x/=10;
    }while(x);

    while(len--){
        putchar(integ[len]);
    }
}

 

posted @ 2016-06-11 19:36  K~L  阅读(463)  评论(0)    收藏  举报