Я пишу простой код для вывода содержимого файла на стандартный вывод.
Когда я использую это:
while((c=fgetc(fp))!=EOF)putchar(c);
Он работает так, как должен, но я хочу объединить putchar
и fgetc
. Итак, я написал
while(putchar(fgetc(fp))!=EOF);
Но, похоже, это не работает. Поэтому я проверяю возвращаемое значение putchar
RETURN VALUE
fputc(), putc() and putchar() return the character written as an
unsigned char cast to an int or EOF on error.
Так почему это не работает?
putchar(EOF)
? - person user253751   schedule 21.05.2015EOF
- person Chaker   schedule 21.05.2015EOF
в вывод? В любом случае,EOF
неunsigned char
, так что это не сработает. - person Weather Vane   schedule 21.05.2015putchar
ничего не напишет, если аргумент равенEOF
? И почему вы думаете, чтоputchar
вернетEOF
, если ошибки не было, когда в документации сказано, что при ошибке возвращаетсяEOF
? - person user253751   schedule 21.05.2015EOF
в вывод, но изLinux Programmer's Manual
я понимаю, чтоputchar
возвращаетEOF
в случае ошибки. - person Chaker   schedule 21.05.2015putchar()
выйдет из строя, а не эхо того, что вы пишете. Пожалуйста, просто придерживайтесь вашего первого метода, который сработал. - person Weather Vane   schedule 21.05.2015putchar
не должно давать сбой, посколькуEOF
не является значением ASCII? - person Chaker   schedule 21.05.2015EOF
не сообщает об ошибке. - person Weather Vane   schedule 21.05.2015