Недавно я начал работать с языком программирования C примерно два или три дня назад, но я столкнулся с некоторыми проблемами при работе с циклом do-while. Это часть моей программы, которая не запускалась.Цикл Do-While в C
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
int main(void){
char another_game = 'Y';
scanf("%c", &another_game);
do{
printf("\nWould you like to continue(Y/N)?");
scanf("%c", &another_game);
}while(toupper(another_game) == 'Y');
return 0;
}
Петля предполагают, чтобы продолжать работать до тех пор, пока пользователь набирает 'Y'
или 'y'
когда приглашение сделать это, но я заметил, что после того, как программа выполняет цикл в первый раз, он просто отображает вопрос, а затем снова цикл прерывается. Я пробовал использовать целые числа, чтобы пользователь мог ввести 1
, когда он хочет продолжить, или 0
, когда он хочет выйти, это сработало, поэтому я не понимаю, почему этого не будет. Я был бы признателен за помощь в решении этой проблемы, спасибо
'зсапЕ ("% с", ...)' не потребляет символ новой строки. Ваше подтверждение получает эту новую строку. Используйте 'scanf ("% c ", & another_game);', чтобы пропустить начальные пробелы. (это дубликат много раз, но я слишком ленив, чтобы искать. Все берутся?) –
newline остается – BLUEPIXY
Возможный дубликат [Simple C scanf не работает?] (http://stackoverflow.com/questions/3744776/simple -c-scanf-does-not-work) –