我之前写小游戏,要输出一副画面,由于我采用了cout
,输出速度很不理想.
另外一边,因为这个画面有颜色,用到了下面这个API:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color);
我为了提升输出速度,加入了ios::sync_with_stdio(false)
但是,加入了之后,颜色不能正常输出,但是字符可以正常输出.这令我百思不得其解,请问为什么关闭同步流会使得API失效?
另外,同样使用它输出带颜色的字符,当持续输出大量字符的时候,颜色也会失效,只剩下蓝色,灰色,黑色,白色.继续输出,会有时正常,有时异常,且切换频率越来越快.由于我使用了endl
换行,显然不是缓冲区的问题.
这又是为什么呢?