История изменений
Исправление Northsoft, (текущая версия) :
Если Вы используете getchar/fgetc, то обращаю Ваше внимание на то, что тип возвращаемого значения указан как int. Причина как раз в том, чтобы EOF заведомо не совпадала ни с одним из возможных значений char. Согласитесь, было бы странно, если бы файл, заполненный значениями 0xFF, останавливал своё чтение на первом же байте (кстати, предлагаю проверить скомпилированную на x86 программу вариантом, когда посреди файла есть байт со значением 0xFF, вбить можно в любом HEX-редакторе). Поэтому порядок таков:
int getcResult;
char gotChar;
while ( (getcResult = getchar()) != EOF ) {
gotChar = (char) getcResult;
/* fürther processing */
}
Исправление Northsoft, :
Если Вы используете getchar/fgetc, то обращаю Ваше внимание на то, что тип возвращаемого значения указан как int. Причина как раз в том, чтобы EOF заведомо не совпадала ни с одним из возможных значений char. Согласитесь, было бы странно, если бы файл, заполненный значениями 0xFF, останавливал своё чтение на первом же байте (кстати, предлагаю проверить скомпилированную на x86 программу вариантом, когда посреди файла есть байт со значением 0xFF, вбить можно в любом HEX-редакторе). Поэтому порядок таков:
int getcResult;
char gotChar;
while ( (getcResult = getchar()) != EOF ) {
gotChar = (char) getcResult;
/* fürther processing */
}
Исходная версия Northsoft, :
Если Вы используете getchar/fgetc, то обращаю Ваше внимание на то, что тип возвращаемого значения указан как int. Причина как раз в том, чтобы EOF заведомо не совпадала ни с одним из возможных значений char. Согласитесь, было бы странно, если бы файл, заполненный значениями 0xFF, останавливал своё чтение на первом же байте (кстати, предлагаю проверить скомпилированную на x86 программу вариантом, когда посреди файла есть байт со значением 0xFF, вбить можно в любом HEX-редакторе). Поэтому порядок таков:
int getcResult;
char gotChar;
while ( (getcResult = getchar()) != EOF ) {
gotChar = (char) getcResult;
/* fürther processing */
}