Программа на C, начиная с другого цвета - PullRequest
0 голосов
/ 20 марта 2020

Я хотел сделать мою программу шикарной и дать пользователю возможность изменить фон и цвет текста, но он просто начинается с другого (должен быть черный фон и белый текст по умолчанию).

Все просто:

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); также не сработало.

Я не использую эту переменную где-либо еще.

Что я должен сделать, чтобы сделать моя программа работает с черным фоном и белым текстом, если пользователь не изменил ее, как показано выше?

Спасибо

1 Ответ

0 голосов
/ 20 марта 2020

Вы должны изменить порядок так, чтобы 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");
...