以下测试失败,因为“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;
}
我如何让它工作?还有更好的方法吗?
答案 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!");
};