【问题标题】:Changing background and textcolor in CMD using variables C++使用变量 C++ 在 CMD 中更改背景和文本颜色
【发布时间】:2013-03-11 02:14:27
【问题描述】:

我是 C++ 新手,我已经在 J​​ava 中工作了一段时间,现在我想学习更多的语言。我正在制作一个 CMD RPG 游戏。我希望用户在命令提示符中输入一个字符来更改文本和背景的颜色。

char bg,txt;

cout << "Enter your option for BACKGROUND color: " << endl;
cin >> bg;
system("cls");

cout << "Enter your option for TEXT color: " << endl;
cin >> txt;
system("cls");

//here is the part I have trouble on
system("color ",bg,txt);
//

【问题讨论】:

  • 我认为您的意思是您在 Windows 上而不是在 DOS 上运行您的应用程序(如标记)。我说的对吗?
  • 不,它是 DOS。我见过其他人这样做,我想尝试一下。
  • 你搞混了:cmd 是基于 Windows NT 的操作系统(Windows NT、2000、XP、Vista、7 和 8)的命令处理器,通常用作“控制台”的同义词(模式)应用程序”在这些 Windows 版本上。那是不是 DOS。 (MS) DOS 是 Windows 3.x、95、98 和 Me 所基于的 16 位操作系统。我非常怀疑您实际上是指旧的/原始的 DOS。无论如何,在同一个问题上同时使用 cmddos 标记是没有意义的(至少除非您明确要求 both 操作系统)。
  • 感谢您澄清这一点。我不知道有什么不同。我对编程和计算机比较陌生。我已经做了大约 1 3/4 年。我为此道歉。我想为 Windows 做一个命令提示符 RPG。我不想要图形用户界面。它都是基于文本的。我正在使用已成功实现到 CMD 中的特殊 ALT 字符。但是我希望用户输入一个 1-9 的数字或一个 A-F 的字符(或者可能只是 1-15)来更改 CMD 的背景和文本的颜色,使其更具可定制性。谢谢。

标签: c++ windows colors cmd system


【解决方案1】:

使用下面的代码

void setcolor(unsigned short color)                
{                                                   
    HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hcon,color);
}

颜色有 0-15 个数字,0 代表黑色,15 代表白色。

只需在要着色的文本之前调用函数setcolor(numberOf Color)

【讨论】:

  • 对不起,我是个菜鸟,但是当我做这个函数时,我得到了错误。是否有我应该包含的标题以获得HANDEL?
  • 您需要 (请参阅here)。
  • 是的,它是&lt;windows.h&gt; 用于获取hendle
  • 谢谢,但是背景呢。它会更改文本,但不会更改背景。
  • 没关系。如果超过 15,它也会改变背景颜色。
猜你喜欢
  • 2013-03-04
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 1970-01-01
相关资源
最近更新 更多