输入挂 fread

来源:互联网 发布:免费炒股软件 编辑:程序博客网 时间:2024/06/03 23:04

对这个也不是很了解,记录一下。

namespace IO {    const int MT = 20 * 1024 * 1024;    char IO_BUF[MT];    int IO_PTR, IO_SZ;    /// 要记得把这一行添加到main函数第一行!!!    void begin() {        IO_PTR = 0;        IO_SZ = fread (IO_BUF, 1, MT, stdin);    }    template<typename T>    inline bool scan_d (T & t) {        while (IO_PTR < IO_SZ && IO_BUF[IO_PTR] != '-' && (IO_BUF[IO_PTR] < '0' || IO_BUF[IO_PTR] > '9'))            IO_PTR ++;        if (IO_PTR >= IO_SZ) return false;        bool sgn = false;        if (IO_BUF[IO_PTR] == '-') sgn = true, IO_PTR ++;        for (t = 0; IO_PTR < IO_SZ && '0' <= IO_BUF[IO_PTR] && IO_BUF[IO_PTR] <= '9'; IO_PTR ++)            t = t * 10 + IO_BUF[IO_PTR] - '0';        if (sgn) t = -t;        return true;    }    inline bool scan_s (char s[]) {        while (IO_PTR < IO_SZ && (IO_BUF[IO_PTR] == ' ' || IO_BUF[IO_PTR] == '\n') ) IO_PTR ++;        if (IO_PTR >= IO_SZ) return false;        int len = 0;        while (IO_PTR < IO_SZ && IO_BUF[IO_PTR] != ' ' && IO_BUF[IO_PTR] != '\n')            s[len ++] = IO_BUF[IO_PTR], IO_PTR ++;        s[len] = '\0';        return true;    }    template<typename T>    void print(T x) {        static char s[33], *s1; s1 = s;        if (!x) *s1++ = '0';        if (x < 0) putchar('-'), x = -x;        while(x) *s1++ = (x % 10 + '0'), x /= 10;        while(s1-- != s) putchar(*s1);    }    template<typename T>    void println(T x) {        print(x); putchar('\n');    }};

用法

using namespace IO;int main(){    IO::begin();    int n,m;    scan_d(n);    scan_d(m);}
原创粉丝点击