2012-01-20 18 views
4

我做了一个DOS基本的蛇游戏使用涡轮C++ 3.0环境,和我很菜鸟喽。我一直在寻找一个非常简单的,也许是在DOS窗口中制作不同颜色文本的基本方法。我不是在寻找复杂的文字着色方法。我正在编写的大多数程序都非常简单和基本,而且一个比程序本身更大的彩色文本复杂代码只会令人困惑和无效。在C/C++ DOS中对文本进行颜色处理的最简单方法是什么?

我的问题是,什么是在DOS控制台着色文本的两个语言,C和C++的简单方法是什么?

+1

1.你确定你使用的是DOS?你确定它不是Windows? 2.你不能使用现代编译器吗?这可能会使你更有可能获得帮助。 –

+1

@科迪灰色,这是浪费时间吗?我有没有在我的帖子中说过我学习turbo C++?它是否编译?是。我在学校使用它吗?是。与其他编译器相比,它是否为我提供了帮助?是。 请不要发布与问题无关的内容。 – Bugster

回答

5

可以使用的Turbo C/C++的专用(即,非标)功能textcolor()textbackground()textattr()cprintf()cputs()putch()在一起。在IDE的帮助中查看他们的描述,他们都在conio.h

+0

谢谢,这有帮助 – Bugster

7

如果enable ansi.sys,您可以使用ANSI转义序列。

我假设你正在使用DOS在Windows上,你指的是“DOS窗口”,所以你需要启用ANSI.SYS之前,你可以使用它。

的Turbo C++ 3.0不来与Windows头文件和库,所以你将无法使用控制台API。

2

你实际使用DOS(在Win 9X例如DOSBox中或DOS)?

如果是这样,ANSI.SYS是非常简单易用。您只需在设置颜色的控制代码前面添加文字。

如果不是,(即你实际上在Windows上使用命令提示符),然后使用SetConsoleTextAttribute设置前景色和背景色。

而且我只记得,的Windows的32位版本仍然支持command.com,这可以加载ANSI.SYS

1

如果直接写入视频文本缓冲区,屏幕上的每个字符单元对应一对字节,一个是要显示的字符,另一个是它的颜色。见http://en.wikipedia.org/wiki/VGA_compatible_text_mode

起初,它可能看起来有点吓人,但它实际上是相当简单的。这只是有点陌生​​。使用ANSI转义序列需要生成相当多的输出,而文本缓冲区是每个字符一个16位字。

这不是问题了,但在复古时代的硬件,它写入文本缓冲区来获得响应的改变是必要的。通过ANSI接口花费了相当多的时间。

相关问题