Почему не работает getchar?

На некоторых системах не работает следующий код.

char ch;
while( getchar( &ch ) != EOF ) {
  putchar( ch );
}

Почему?

Ответ прост. Если getchar возвращает int, и код EOF не помещается в 8 бит, выход из цикла никогда не произойдет. Для исправления ошибки достаточно поменять тип переменной сh, с char на int.
.

Запись опубликована в рубрике Великий и могучий Си с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>