Я столкнулся с проблемой, пытаясь реализовать решение
while ((c = getchar()) != '\n' && c != EOF) { }
Я публикую небольшую корректировку «Код B» для тех, у кого может быть такая же проблема.
Проблема была в том, что программа заставляла меня ловить символ '\ n', независимо от символа ввода, вот код, который дал мне проблему.
Код A
int y;
printf("\nGive any alphabetic character in lowercase: ");
while( (y = getchar()) != '\n' && y != EOF){
continue;
}
printf("\n%c\n", toupper(y));
и корректировкой было «поймать» символ (n-1) непосредственно перед вычислением условия в цикле while, вот код:
Код B
int y, x;
printf("\nGive any alphabetic character in lowercase: ");
while( (y = getchar()) != '\n' && y != EOF){
x = y;
}
printf("\n%c\n", toupper(x));
Возможное объяснение состоит в том, что для прерывания цикла while необходимо присвоить значение '\ n' переменной y, поэтому оно будет последним присвоенным значением.
Если я что-то пропустил с объяснением, кодом A или кодом B, скажите, пожалуйста, я новичок в c.
надеюсь, это кому-нибудь поможет