我正在编写一个命令行游戏,应该可以在4-40 FPS下工作(稍后会选择)。但是,我有一个问题。使用putchar()绘制由1920个彩色字符组成的“图像”需要0.2-0.3秒,我可以看到我的图像逐行绘制。但是,例如,在Firefox中,我几乎可以在不到十分之一秒的时间内在画布上绘制64000个RGB像素。
有没有办法避免这种延迟,是控制台强制延迟还是实际处理输出需要多长时间?
答案 0 :(得分:7)
请勿使用putchar
。创建一个充满字符的缓冲区,代表屏幕状态,并使用write
将缓冲区一次性发送到stdout,然后刷新它。
例如:
write(STDOUT_FILENO, buffer, buffer_size); fflush(stdout);
答案 1 :(得分:2)
您应该将输出字符串组合在内存中,并使用printf
在一个平静的环境中编写它