5 ms·
The author takes the long way round and misses the point by a little bit. ANSI C defines EOF, the 2nd edition by Kernighan and Ritchie page 151 states 'getchar
by shrubble 4y ago
The author takes the long way round and misses the point by a little bit.
ANSI C defines EOF, the 2nd edition by Kernighan and Ritchie page 151 states 'getchar returns the next input character each time it is called, or EOF when it encounters end of file. The symbolic constant EOF is defined in <stdio.h>.
The value is typically -1, bit tests should be written in terms of EOF so as to be independent of the specific value.'
- zabzonk 4y agoperhaps point out that there is no actual EOF in a file in modern operating systems - i bang on about this here: https://latedev.wordpress.com/2012/12/04/all-about-eof/ https://latedev.wordpress.com/2012/12/04/all-about-eof/
- ksherlock 4y agoThe discussion is about how terminals and pseudo terminals handle control characters, specifically ^D / EOF / termios.c_cc[VEOF] which is a few layers below getchar(). man stty(1) or termios(5) for more information.
- AdieuToLogic 4y agoEOF is also used to indicate error(s) in a stream. Its value is platform dependent. As per the C++ standard[0]: It is a macro definition of type int that expands into a negative integral constant expression (generally, -1). 0 - https://cplusplus.com/reference/cstdio/EOF/ https://cplusplus.com/reference/cstdio/EOF/
- lionkor 4y agoplease do not use cplusplus.com, use cppreference instead. cplusplus.com often is wrong, out of date, or just missing things.
- AdieuToLogic 4y agoNoted. Is this particular citation, "wrong, out of date, or just missing things"?
- lionkor 4y agoNone of the above for this case, but generally not a good idea to look there. Instead: https://en.cppreference.com/w/c/io https://en.cppreference.com/w/c/io