2012-01-20 19 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接口花費了相當多的時間。

相關問題