C语言:循环文本与随机颜色组合

时间:2016-01-06 20:16:56

标签: c text colors dev-c++

以下测试失败,因为“system(”color #code);“需要是静态的。 例如: -

system("color 0F");工作。

system("color %d %d",a, b);没有。

完整代码:

#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

int main() 
{
char R[15]={'1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

    while(1)
    {
    srand(time(NULL));
    int Ra = rand() %10 + 6;
    int Rb = rand() %10 + 6;

    system("color %c%c",R[Ra], R[Rb]);  

    printf("Hello world!");
    system("cls");
    };

return 0;
}

我如何让它工作?还有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

system()没有采用格式化字符串。

请改为尝试:

int main(void){

    char R[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

    srand(time(NULL));
    char color_string[20];

    while(1) {

        int Ra = rand() %16;
        int Rb = rand() %16;

        sprintf(color_string, "color %c%c", R[Ra], R[Rb]);
        system(color_string);  

        printf("Hello world!");
        system("cls");
    };

    return 0;
}

使用getch()(按要求,但不是标准):

while( getch() != 27) {

    system("cls");

    int Ra = rand() %16;
    int Rb = rand() %16;

    sprintf(color_string, "color %c%c", R[Ra], R[Rb]);

    system(color_string);  

    printf("Hello world!");
};