最有效的写入控制台的方法?

我想做一个iostreamtypes的类。 我想find写一组字符到屏幕的最有效的方法。 思路:

printf – 我不想要types格式化我需要自己做。
WriteConsole – 读取它比printf慢? 真假?
*大会 – 不知道如何
其他?

*我主要关心的是如果我能find如何做到这一点。 我没有任何赶时间。

编辑:出于某种原因WriteConsole比较慢。

我会建议尝试一些方法(你已经提到了一对夫妇)和基准结果。 你可能会对你的结果感到惊讶,但即使他们如你所料,你至少可以确定你正在尽力而为。 尽管如此,如果你发现比printf快得多,我会感到惊讶。

编码(以我的经验)最实用的方法是这样的:

  1. 获得一些功能上的表现。
  2. 建立一个基准来测试你的解决方案是否足够快。
  3. 如果速度不够快,请尝试其他方法,然后回到2。
  4. 如果速度足够快,你就完成了!

这听起来像你甚至没有开始从你的问题设计/编码。 当心过早的优化…

使用“fwrite”:

 fwrite( buffer, size, 1, stderr ); 

这将比你所需要的要快得多。 而且你有一个奖励,那么你可以让你的iostream类不仅能够写入控制台,而且还能写入文件。

我发现对于使用WriteConsoleOutputCharacter() fwrite() Windows, stdout平均值与fwrite() WriteConsoleOutputCharacter()平均值相同,如果不使用<stdio.h> ,则需要少一个文件。 两者都非常快。 我没有测试FillConsoleOutputCharacter() 。 我可能没有使用那么好的基准。 至于过早的优化,我不得不先解决这个问题,当为控制台窗口创建一个很酷的小库时,或多或少地把它变成一个基于Windows的环境,并且用一个总体的系统来管理它。 我使用这个系统进行大学和个人文本游戏。 对于使用cout和朋友的日志记录和类似的行为,尽管速度很慢(呃),但同样也能完成这项工作。