Так что я пытаюсь спросить пользователя, хотят ли они повторить мою программу, и я получаю странный результат то и дело. Это происходит не каждый раз, и я не мог понять, что вызывает его.ошибка повторения функции программы в C, scanf связана?
Мне кажется, что он присваивает «возврат» после ввода «q» в repeatProgram вместо «q», но у меня нет идеи, почему.
Выход, когда он работает:
для выхода введите д, чтобы продолжить вводить у.
s
Вы вошли в s, это недействительный вариант.
Выходной сигнал, когда он терпит неудачу:
для выхода введите д, чтобы продолжить вводить у.
д
вы вошли
, что не является допустимым вариантом.
Код:
char RepeatProgramPrompt()
{
char repeatProgram;
do
{
printf("\nTo exit enter q, to continue enter y.\n");
scanf("%c%*c", &repeatProgram);
repeatProgram = tolower(repeatProgram);
if(repeatProgram != 'y' && repeatProgram != 'q')
{
printf("\nYou've entered %c, that isn't a valid option.\n", repeatProgram);
}
}while(repeatProgram != 'y' && repeatProgram != 'q');
return(repeatProgram);
}
Так что мой вопрос, почему это происходит? он отлично справится с кучей попыток, а затем просто потерпит неудачу.
Извините, если я отформатировал это неправильно, это мой первый пост.
Так просто, спасибо. – user2926952