ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 ноября
1389747 Топик полностью
starter (04.01.2024 16:24, просмотров: 133) ответил LightElf на Проблема в том, что fgetc сотоварищи возвращает int. Некоторые особо умные программисты сначала кладут возвращаемое значение в переменную типа char, делая неразличимыми EOF (0xFFFFFFFF) и "я" (0x000000FF), а уже потом проверяют её на -1.
Да, но проблема усугубляется использованием именно signed char (по умолчанию, если не указана опция компилятора). 

Если бы использовали unsigned char, то сравнение с -1 (EOF) проходило бы правильно и т.о. буква я не воспринималась как EOF, но проверка на нормальный EOF отвалилась бы и программист стал бы разбираться и обнаружил ошибку.