没有控制台输出的彩色文字?

时间:2017-02-20 12:55:30

标签: c++ winapi console-output

[这是我的第一篇文章。请不要吞噬我]

嘿偷看!

我很新(比如几个小时)到C ++

我还没有学过任何其他“高级”语言,我在Windows CMD中做过大多数事情, 并且它现在以它的控制台而闻名,但它缺乏功能驱使我在其他地方。

所以,为了学习C ++,我目前正在使用Sololearn并且正在研究,即将首先从Batch中移植一些小项目,我不想使用GUI或扩展,我正在使用CodeBlocks来执行控制台应用程序

现在我的问题;

我正准备为着色文本做一个简洁的功能,我在这里修改了一个片段(在这里找到:Source):

void colorText(string ct, int col)
{

   HANDLE  hConsole;
   hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

   FlushConsoleInputBuffer(hConsole);
   SetConsoleTextAttribute(hConsole, col);

      cout << ct;

   SetConsoleTextAttribute(hConsole, 15); //set back to black background and white text
}

实际上工作得很好, 用

来调用它
 colorText("This my Text",12);

例如。 所以,我用它得到丑陋的控制台输出,看起来像这样:

CMD.EXE was started with the Path given above as the current Directory.
UNC-Paths aren't supported.
The Windows - Directory will be set as current Directory.

现在,有没有人有一个想法如何通过使用不同的着色技术或静音控制台窗口来避免这种情况?我也很感激如果有人知道某些地方可以更专业地学习C ++,教程,网站......

我很感谢你的帮助,

真诚的克拉贡

1 个答案:

答案 0 :(得分:0)

GetStdHandle可能会返回一个与您运行的调试控制台不兼容的句柄。在程序启动时调用该函数并保持句柄可能会更好。