ksacvet777.moy.su
Главная » Статьи » IT

цветной вывод в консоль

Очень просто это можно делать, а выглядит нагляднее:

 

 





#pragma once

#ifdef WIN32
#include <windows.h>
#include <stdexcept>
#pragma warning(push)
#pragma warning(disable : 4290)


#define KSL_CCOL_WHITE 0x07 
#define KSL_CCOL_RED 0x0C 
#define KSL_CCOL_GREEN 0x0A 
#define KSL_CCOL_BLUE 0x01 

#define KSL_CCOL_BLUESKY 0x0B
#define KSL_CCOL_PINK 0x0D
#define KSL_CCOL_YELLOW 0x0E

#define KSL_CCOL_GROW 0x08

/** \brief Установить цвет вывода текста консоли. <br>
 Старший хекс - цвет фона,  младший - цвет текста.
 \code
 ЦВЕТА:

 0x02 - зелёный   
 0x03 - голубой  
 0x04 - красный
 0x05 - розовый   
 0x06 - жёлтый    
 0x09 - голубой   


 FOREGROUND_BLUE      0x0001 // text color contains blue.
 FOREGROUND_GREEN     0x0002 // text color contains green.
 FOREGROUND_RED       0x0004 // text color contains red.
 FOREGROUND_INTENSITY 0x0008 // text color is intensified.
 BACKGROUND_BLUE      0x0010 // background color contains blue.
 BACKGROUND_GREEN     0x0020 // background color contains green.
 BACKGROUND_RED       0x0040 // background color contains red.
 BACKGROUND_INTENSITY 0x0080 // background color is intensified.  

 \endcode  */

inline void SetConsoleColor(BYTE color = 0x07) throw (std::runtime_error) 
{
     HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE ); 
     if ( hStdout == INVALID_HANDLE_VALUE ) 
     { 
         throw std::runtime_error(" Call GetStdHandle failed ");
     } 

     WORD attr = FOREGROUND_INTENSITY | ( (WORD)color) ;// FOREGROUND_RED|FOREGROUND_INTENSITY 
     if (! SetConsoleTextAttribute(hStdout, attr ) ) 
     { 
         throw std::runtime_error(" Call SetConsoleTextAttribute failed ");     
     }

}


inline void SetConsoleColorW(WORD color = 0x0007) throw (std::runtime_error) 

     HANDLE hStdout = GetStdHandle( STD_OUTPUT_HANDLE ); 
     if ( hStdout == INVALID_HANDLE_VALUE ) 
     { 
         throw std::runtime_error(" Call GetStdHandle failed ");    
     } 

     if (! SetConsoleTextAttribute(hStdout, color ) ) 
     { 
         throw std::runtime_error(" Call SetConsoleTextAttribute failed ");     
     } 

}


inline void SetConsoleColorWhite() throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_WHITE); }
inline void SetConsoleColorRed () throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_RED); }
inline void SetConsoleColorGreen() throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_GREEN); }
inline void SetConsoleColorBlue () throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_BLUE); }
inline void SetConsoleColorGlow () throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_GROW); }
inline void SetConsoleColorPink () throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_PINK); }
inline void SetConsoleColorYellow() throw (std::runtime_error) { SetConsoleColor(KSL_CCOL_YELLOW); }



#else
// not windows

#error no code for other platforms


#endif 


#pragma warning(pop)
 
 
Категория: IT | Добавил: ksacvet777 (05.11.2014)
Просмотров: 391 | Комментарии: 1 | Теги: out, dest, консоль, CONSOLE, Вывод, CPP, запись, Write | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: