写入控制台没有延迟

时间:2012-01-08 11:44:58

标签: c console stdout

我正在编写一个命令行游戏,应该可以在4-40 FPS下工作(稍后会选择)。但是,我有一个问题。使用putchar()绘制由1920个彩色字符组成的“图像”需要0.2-0.3秒,我可以看到我的图像逐行绘制。但是,例如,在Firefox中,我几乎可以在不到十分之一秒的时间内在画布上绘制64000个RGB像素。

有没有办法避免这种延迟,是控制台强制延迟还是实际处理输出需要多长时间?

2 个答案:

答案 0 :(得分:7)

请勿使用putchar。创建一个充满字符的缓冲区,代表屏幕状态,并使用write将缓冲区一次性发送到stdout,然后刷新它。

例如: write(STDOUT_FILENO, buffer, buffer_size); fflush(stdout);

答案 1 :(得分:2)

您应该将输出字符串组合在内存中,并使用printf

在一个平静的环境中编写它