【问题标题】:Program in C starting with different colorC语言程序以不同的颜色开始
【发布时间】:2020-07-01 04:42:41
【问题描述】:

我想让我的程序花哨,并让用户可以选择更改背景和文本颜色,但它只是以不同的开始(默认情况下应该是黑色背景和白色文本)。

很简单:

printf("\n\tBACKGROUND AND TEXT COLOR\n\n");
printf("------------------------------\n\n");
printf(" 1) Black background and white text\n");
printf(" 2) White background and black text\n");
printf(" 3) Black background and red text\n");
printf(" 4) White background and red text\n");
printf(" 5) Go back\n\n");
printf("------------------------------\n\n");
printf(" ");
scanf("%d", &color);

if(color==1) system("color 0f");
if(color==2) system("color f0");
if(color==3) system("color 04");
if(color==4) system("color f4");
if(color==5) main();

但现在程序有白色背景和红色文本 (4),除非我在运行时更改它。

定义int color=1; 无效。将if (color!=2, 3, 4) system (color 0f); 之类的东西放在开头也不起作用。

我不会在其他任何地方使用该变量。

我应该怎么做才能让我的程序以黑色背景和白色文本运行,除非用户如上所示更改?

谢谢

【问题讨论】:

    标签: c colors dev-c++


    【解决方案1】:

    您应该更改顺序,使system("color 0f"); 在所有其他语句之后。即使在 if 参数为真之前不应评估它们中的任何一个,但程序会看到存在“system(“...”)”语句并将最后一个语句作为默认值。

    if(color==2) system("color f0");
    if(color==3) system("color 04");
    if(color==4) system("color f4");
    if(color==1) system("color 0f");
    

    【讨论】:

    • 没有最后一个。这些是 4 个独立的 if 语句。它们中的每一个仅在条件为真时执行。如果第一个条件为假,除非最后一个条件为真,否则最后一个条件将不会被执行和评估为默认值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    相关资源
    最近更新 更多