Is there a library routine like fgets() but which takes any of CR, NL, and
CR+NL as an end of line?
I'm pretty sure there isn't. Is using sscanf out of the question? You may be able
to construct a format string that does what you want unless you really do want a CR by
itself to also represent a linefeed (which I can't think how to do using sscanf).