2012-02-08 33 views
12

Tôi biết "textcolor();" là cho C + + và tôi đã nhìn thấy phương pháp cho unix ... nhưng có cách nào cho các cửa sổ cũng?Văn bản màu C trong các ứng dụng đầu cuối trong các cửa sổ

#include <stdio.h> 
int main() 
{ 
    printf("\ntest - C programming text color!"); 
    printf("\n--------------------------------"); 
    printf("\n\n\t\t-BREAK-\n\n"); 
    textcolor(15); 
    printf("WHITE\n"); 
    textcolor(0); 
    printf("BLACK\n"); 
    textcolor(4); 
    printf("RED\n"); 
    textcolor(1); 
    printf("BLUE\n"); 
    textcolor(2); 
    printf("GREEN\n"); 
    textcolor(5); 
    printf("MAGENTA\n"); 
    textcolor(14); 
    printf("YELLOW\n"); 
    textcolor(3); 
    printf("CYAN\n"); 
    textcolor(7); 
    printf("LIGHT GRAY\n"); 
} 

tôi không thể tìm thấy bất kỳ điều gì trên mạng ... chúng ta hãy hy vọng những người tốt từ stack overflow có thể giúp: D

C xin vui lòng, không phải C++

Trả lời

28

vì bạn muốn có một C và Windows cụ thể để lution, tôi khuyên bạn nên sử dụng chức năng SetConsoleTextAttribute() trong Win32 API. Bạn sẽ cần phải nắm lấy một tay cầm để bàn điều khiển, và sau đó vượt qua nó với các thuộc tính thích hợp.

Là một ví dụ đơn giản:

/* Change console text color, then restore it back to normal. */ 
#include <stdio.h> 
#include <windows.h> 

int main() { 
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 
    CONSOLE_SCREEN_BUFFER_INFO consoleInfo; 
    WORD saved_attributes; 

    /* Save current attributes */ 
    GetConsoleScreenBufferInfo(hConsole, &consoleInfo); 
    saved_attributes = consoleInfo.wAttributes; 

    SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE); 
    printf("This is some nice COLORFUL text, isn't it?"); 

    /* Restore original attributes */ 
    SetConsoleTextAttribute(hConsole, saved_attributes); 
    printf("Back to normal"); 

    return 0; 
} 

Để biết thêm về các thuộc tính có sẵn, nhìn here.

Hy vọng điều này sẽ hữu ích! :)

+0

Cảm ơn rất nhiều, nó hoạt động tốt, chỉ cần tự hỏi làm thế nào để thiết lập nó trở lại màu xám ánh sáng mặc định? Cảm ơn rất nhiều! –

+0

@JoeDF Để làm điều đó bạn sẽ cần phải đọc trong các thuộc tính ban đầu với 'GetConsoleScreenBufferInfo()', lưu trữ chúng trong một biến, và sau đó khôi phục chúng khi thực hiện xong. Tôi đã cập nhật câu trả lời để hiển thị cách thực hiện việc này. :) – Miguel

+0

THANKS A LOT! : D –

-3

Loại thứ hai có "bao gồm windows.h" hoạt động. Một cái khác có lẽ là khởi đầu của

+0

Tôi nghĩ đây là câu trả lời cho câu trả lời của Miguel? Bạn nên sử dụng bình luận cho điều đó. Thay vào đó, bạn đã thêm câu trả lời mới. –

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