C - как исключить другие входы в петле AY / N - PullRequest
0 голосов
/ 18 октября 2018

Итак, я пытаюсь заставить работать простой ввод-вывод.У меня это работает, и он будет прерывать цикл while (1) при вводе n или N, однако любой другой алфавитный символ заставит цикл возобновиться.Я хочу, чтобы он зацикливался только при вводе Y.

Я пробовал: if (try_another != 'n' || try_another != 'N' || try_another != 'y' || try_another != 'Y'), после строки !isalpha, и это не сработало.

Я пробовал scanf (" %c", try_another);и затем сравниваем назначенные символы.

это мой текущий установленный код:

printf("Do you wish to try another problem [y/n]: ");

        do{
            try_another = getchar();
        /*keeps scanning for input until its a letter*/
        }while(!isalpha(try_another));
    /*when input is n or N it will end the program*/
        if (try_another == 'n' || try_another == 'N'){
            break;
        }

1 Ответ

0 голосов
/ 18 октября 2018

Почему бы вам не сделать это?

do {
    try_another = getchar();
} while(try_another != 'n' && try_another != 'N' && try_another != 'y' && try_another != 'Y');

Вы хотите сделать цикл, пока персонаж не такой , а не так.Вы были близко , но случайно написали "или" вместо "и".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...