我使用turbo C ++ 3.0在DOS环境下制作了一个基本的蛇游戏,我自己也是一个新手。我一直在寻找一个非常简单的,也许是在DOS窗口中制作不同颜色文本的基本方法。我不是在寻找复杂的文字着色方法。我写的大多数程序都非常简单和基本,并且复杂的代码来设置比程序本身更大的文本,只会让人感到困惑和无效。
我的问题是,在DOS控制台中用BOTH语言,C和C ++着色文本的最简单方法是什么?
答案 0 :(得分:7)
如果你enable ansi.sys,你可以使用ansi转义序列。
我假设您在Windows上使用DOS,因为您引用了“DOS窗口”,因此您需要先启用ansi.sys才能使用它。
Turbo C ++ 3.0没有Windows标头或库,因此您将无法使用控制台API。
答案 1 :(得分:5)
您可以使用Turbo C / C ++(仅限非标准)函数textcolor()
,textbackground()
和textattr()
以及cprintf()
,{{1} }和cputs()
。请参阅IDE帮助中的说明,它们都在putch()
。
答案 2 :(得分:2)
你实际上是在使用DOS(例如Win Box上的DOSBox或DOS)吗?
如果是这样,ANSI.SYS非常简单易用。您只需在文本前面加上设置颜色的控制代码即可。
如果没有,(即您实际上在Windows上使用命令提示符),请使用SetConsoleTextAttribute设置前景色和背景色。
我记得,32位版本的Windows仍支持command.com
,这可以加载ANSI.SYS
。
答案 3 :(得分:1)
如果直接写入视频文本缓冲区,屏幕上的每个字符单元格对应一对字节,一个是要显示的字符,另一个是其颜色。见http://en.wikipedia.org/wiki/VGA_compatible_text_mode
起初,它看起来有点令人生畏,但它实际上非常简单。这有点陌生。使用ANSI转义序列需要生成相当多的输出,而文本缓冲区是每个字符一个16位字。
不再重要,但在复古时代的硬件上,有必要写入文本缓冲区以获得响应式更改。通过ANSI接口花费了相当长的时间。