快速输出

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

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函数

评论

此博客中的热门博文