快速输出

整理一下快输的板子,方便自己复制

putchar优化版由于还没有printf快,这里就不放了

直接来fwrite版:

char buf[1 << 21];
int p1 = -1;
const int p2 = (1 << 21) - 1;
void flush()
{
    fwrite(buf, 1, p1 + 1, stdout);
    p1 = -1;
    return;
}
void pc(char x)
{
    if (p1 == p2)
        flush();
    buf[++p1] = x;
    return;
}
void write(int x)
{
    char buffer[10];
    int len = -1;
    if (x >= 0)
    {
        do
        {
            buffer[++len] = (x % 10) | 48;
            x /= 10;
        } while (x);
    }
    else
    {
        pc('-');
        do
        {
            buffer[++len] = -(x % 10) | 48;
            x /= 10;
        } while (x);
    }
    while (len >= 0)
        pc(buffer[len--]);
    return;
}

PS:程序结束之前需要再调用一次flush函数

发表评论

电子邮件地址不会被公开。 必填项已用*标注