c - 如何循环 <windows.h> system ("color") 命令以使命令提示符快速改变其颜色?

标签 c windows cmd colors attributes

只是为了好玩,但尽管如此,任务是让 cmd 窗口自动更改其颜色,而无需用户输入。类似这样的事情可以通过使用 system("color") 来完成。我试过循环播放

for(;;) { 系统(“颜色1c”); 系统(“颜色3f”); }

(并在该循环中添加更多具有不同属性的“颜色”命令),但显然颜色在循环中不会改变。 第二个问题,如何将属性变成一个不断递增的变量,这样我们就不需要复制粘贴十几个具有不同属性的颜色命令? 至于第二部分,我唯一的想法是 system("color %d"),但不用说,它甚至无法编译。

最佳答案

system() 接收字符串,而不是格式。您可以使用 snprintf() 将所需的字符串写入缓冲区,然后将其交给系统。

编辑:尝试了一下,按预期工作:

#include <stdio.h>
#include <process.h>
#include <stdlib.h>

int main()
{
    srand(374); //doesnt need to be a proper seed, since just for fun
    char *buf = malloc(64); //should be enough
    loop:
    snprintf(buf, 64, "color %d%d", rand()%10, rand()%10);
    system(buf);
    goto loop;
    return 0;
}

是的,我知道没有 free(),但无论如何它都是一个无限循环。 :^) 此外,这个解决方案忽略了一些颜色,因为它只写了 0-9 而不是 A-F,但我想我们可以忽略某些颜色的浅色版本,因为无论如何,预期的效果都是存在的。

关于c - 如何循环 <windows.h> system ("color") 命令以使命令提示符快速改变其颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49602585/

相关文章:

node.js - 使用 Node js 从打印机扫描

c - 图是否连通!福特富尔克森的C语言

c - 在应用程序中禁用 Linux 内存过度使用

linux - 重命名多个文件

C++ Windows链接子系统问题

windows - 循环浏览打开的 Windows 应用程序

windows - 使用 32 位安装程序删除 64 位注册表项

python - 将 python 脚本作为命令行变量运行

c++ - 从 Linux 移植到 Windows,tm.sys

c - 为什么输入在空格字符后中断