C getchar () и putchar () - PullRequest
       27

C getchar () и putchar ()

0 голосов
/ 19 июля 2011

Проходя через K & R, я пытаюсь разобраться с C. Я хочу написать программу, которая выводит на экран предыдущую строку пользователя, если только символ не был "a".

int main(){

int c;

while((c=getchar())!=EOF){

     if(c!='a')
            putchar(c);
}
return 0;
}

Да, программа не очень.Но это не будет работать так, как задумано.Нужно ли использовать значение ASCII символа «а», потому что приведенный выше код просто печатает все буквы независимо от того, является ли он или нет.

1 Ответ

1 голос
/ 19 июля 2011

Код должен работать как указано, но вы обнаружите, что использование getchar с циклом while будет печатать возврат каретки при вводе a.Это связано с тем, что в текущей реализации getchar будет продолжать чтение входного буфера до тех пор, пока он не станет пустым, если вы хотите остановить это, вы можете сбросить его в операторе if.

Ввод строки текста вмомент будет печатать строку, удаляя любые * a * s

...