#include <string.h>
int main()
{
char cmd[50];
strcpy(cmd,"lxterminal -e \" parametros para cambiar el color \""); //supongamos que su programa compilado se llama a.out, y se lo pasamos.
system(cmd);
//..
system() 适用于 GNU/Linux,但很可能未传递给它的命令与您在 Windows 上看到的命令不同,还要记住它是不同的操作系统,还要记住终端在GNU/Linux 有许多命令可能也不同,“在能够像你在 Windows 中看到的那样执行它的情况下”。
更新
出于好奇,也许这是您正在寻找的最简单的方法:
//..
char cmd[50];
strcpy(cmd,"echo -test \"\e[97m\e[41m\"");
system(cmd);
sleep(5);
int a = 0;
for (a = 0; a < 10000; a++){
printf("Hola Mundo");
sleep(5);
..//
那么你的问题可能有很多方法可以做到,这里有一些(想法/方法):
1
根据你说的
system()
你必须知道你的操作系统有哪个终端,例如,如果你有 LXTerminal,这允许你从它的窗口中更改它们:
现在,这只是假设,因为原则上我总是指望终端/操作系统被设计为做类似的事情似乎有点麻烦(我非常怀疑它是否被认为做类似的事情)。
可以使用这样的东西:
注意传递给
cmd
命令“fiticio”的内容但是如果有这个命令,上面会做的是打开一个新的控制台等。有必要调查参数是否可以通过 system() 以类似于提到的方式传递给活动终端。
我对这种方法的结论一目了然,在我看来,有太多变数使它不起作用。
这个问题涉及一个可能对您有所帮助的主题。
二
另一种方法可能是,通过其程序,它修改配置文件或替换终端使用的配置文件用于使用方案等。
.Xdefaults
.bashrc
这将取决于终端,这种方法对我来说似乎更简单,甚至更重要的是,如果你知道你想要什么颜色,“你只需要”修改和加载它们,我不认为使用 system()这将非常复杂,即使如此你也必须进行调查,因为也许有更简单的方法。
信息:https ://bbs.archlinux.org/viewtopic.php?id=51818&p=9
3
我将把这个留到最后,因为我不知道是否可以根据您的问题使用这种方法,(尽管我认为如果我希望 cli 具有自定义颜色等,我会使用这种方法) .
我不知道你是否知道Ncurses,使用这个库你可以改变你的程序显示的方面,也许它就是你要找的。
虽然 Ncurses 比改变颜色更进一步,但如果我想自定义程序,我会使用这个库。
信息:http ://tldp.org/HOWTO/NCURSES-Programming-HOWTO/color.html
PS:
system() 适用于 GNU/Linux,但很可能未传递给它的命令与您在 Windows 上看到的命令不同,还要记住它是不同的操作系统,还要记住终端在GNU/Linux 有许多命令可能也不同,“在能够像你在 Windows 中看到的那样执行它的情况下”。
出于好奇,也许这是您正在寻找的最简单的方法:
使用 ANSI 方法:
https://es.wikipedia.org/wiki/C%C3%B3digo_escape_ANSI
也许你不需要这个,但我会把它留给你,它是改变文本字母的颜色,它适用于类 UNIX 环境:
使用setterm命令,您可以更改终端的背景颜色
该脚本在虚拟终端上运行,要查看它是如何工作的,请访问: ctrl + alt + f1 (例如),登录并运行以下示例脚本。
如果在任何 printf 或任何 cout 中使用转义序列 \033 会更容易,例如:
在 C 中:
在 C++ 中:
在这个页面上有更多关于字体颜色、背景、应用粗体等列表的信息,在运行时到 linux 终端,类似于 Windows 中 C/C++ 语言的 system(color ):
https://robologs.net/2016/03/31/how-to-color-the-output-of-the-terminal-in-linux/
我在 ubuntu 14.04 上使用代码块对其进行了测试,它使用代码块工作。
这是一个很好的例子:
虽然变化是线条或线条,但创意可以覆盖整个终端;)。
我希望它有所帮助。
祝福大家。