快速输入函数 -- inline int read()(输入大数据必备)

近日比赛看到题解用这个函数来进行输入数据,据说是比scanf还要快。

inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    return x * f;
}
int main() {
    int n;
    while (n = read()) {
        cout << n << endl;
    }
}

注意一个点,直接输入0的话会直接跳出循环,但0还是会被读进去。
然后还有一个函数比这个更快的,看看就好,估计也用不到吧。。。
在这里插入图片描述
引用别人的解释之为什么会比前面那个快的原因:
这个,对于c(c++)里的标准输入输出是有行缓冲的,这里把原来的行缓冲改为S大小的字节流,一次读写S这么多,所以快了吧.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章