C getchar() и putchar()
Проходя через K&R, я пытаюсь разобраться с C. Я хочу написать программу, которая выводит на экран предыдущую строку пользователя, если только символ не был "a".
int main(){
int c;
while((c=getchar())!=EOF){
if(c!='a')
putchar(c);
}
return 0;
}
Да, программа не очень. Но это не будет работать так, как задумано. Нужно ли использовать значение ASCII символа "а", потому что приведенный выше код просто печатает все буквы независимо от того, является ли он или нет.
1 ответ
Код должен работать как указано, но вы обнаружите, что с помощью getchar
с циклом while напечатает возврат каретки при вводе а. Это потому, что в текущей реализации getchar
будет продолжать читать входной буфер до тех пор, пока он не станет пустым; если вы хотите остановить это, вы можете сбросить его в операторе if.
Ввод строки текста в данный момент напечатает строку, удалив любые *a*s