首页 > 解决方案 > C 终端中的颜色 (Windows)

问题描述

所以,我正在制作一个程序,用户可以在终端上玩纸牌,但是我希望终端为每个“卡片”显示不同的颜色。也许是这样的:

printf("%c - %c", (red)ten_clubs, (white)ace_spades);

我已经查找了这个问题的一些答案,但是他们使用仅适用于 UNIX 的解决方案来处理它,而我目前正在 Windows 上使用 Dev-C++ 进行开发。

我真的不知道如何按照这些思路做出一些事情,所以如果有人可以帮助我,我将非常感激

标签: ccolorsterminal

解决方案


至少有两种方法可以做到这一点。

如果您打算将代码移至 Unices,则可以使用pdcurses使其具有一点可移植性。

或者

您可以使用Win32 控制台 API,这需要一些学习才能开始。就像是:

HANDLE  h_stdout;

h_stdout = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(h_stdout, FOREGROUND_RED);
printf("%c", ten_cubs);
SetConsoleTextAttribute(h_stdout, FOREGROUND_WHITE);
printf("%c" ace_spades);

这应该给你一个想法。


推荐阅读