-
- Это из-за того, что "недалёкие ушлёпки" по умолчанию используют signed char. В результате код маленькой буквы я (0xFF) приводится к целочисленному значению -1, что является признаком конца файла (EOF) - эта проблема возникает
при чтении файлов. starter(162 знак., 04.01.2024 10:51)
- Проблема в том, что fgetc сотоварищи возвращает int. Некоторые особо умные программисты сначала кладут возвращаемое
значение в переменную типа char, делая неразличимыми EOF
(0xFFFFFFFF) и "я" (0x000000FF), а уже потом проверяют её на -1. - LightElf(04.01.2024 16:02)
- Да, но проблема усугубляется использованием именно signed char (по умолчанию, если не указана опция компилятора). starter(222 знак., 04.01.2024 16:24)
- Проблема в том, что fgetc сотоварищи возвращает int. Некоторые особо умные программисты сначала кладут возвращаемое
значение в переменную типа char, делая неразличимыми EOF
(0xFFFFFFFF) и "я" (0x000000FF), а уже потом проверяют её на -1. - LightElf(04.01.2024 16:02)
- Это из-за того, что "недалёкие ушлёпки" по умолчанию используют signed char. В результате код маленькой буквы я (0xFF) приводится к целочисленному значению -1, что является признаком конца файла (EOF) - эта проблема возникает
при чтении файлов. starter(162 знак., 04.01.2024 10:51)