2012-02-05 28 views
5

Trong C++ đoạn mã sau khi chạy trong giao diện điều khiển sẽ in văn bản trong màu:Làm cách nào để tạo văn bản màu?

cout << "\e[32;40mGreenForegroundAndBlackBackgroundText" << endl; 

Trong D Tôi nhận được một lỗi:

string s = "\e[32;40mGreenForegroundAndBlackBackgroundText"; // undefined escape sequence \e 

Có cách nào để làm việc này trong D?

+0

Hãy nhớ rằng các chuỗi thoát ở trên sẽ không hoạt động trong bất kỳ thiết bị đầu cuối không ANSI nào khác. – DejanLekic

+0

Tôi đã làm việc trên [một thư viện cho điều này] (http://code.google.com/p/decora)! (Tôi không thể tin được điều này như thế nào.) – Maxpm

Trả lời

8

Chuỗi cố định C++ thoát \e cho ký tự thoát là phần mở rộng GCC không chuẩn của C cho character escapes (cũng được Clang chấp nhận, có thể).

Bạn chỉ cần đặt mã hóa bát phân của nó có lẽ là \033 hoặc \x1b

Hãy cẩn thận tuy nhiên đó không phải là tiêu chuẩn \e[32;40m C hoặc C++, nó là chuỗi ANSI terminal thoát liên quan đến tty -s.

Các vấn đề liên quan