In a binary stream, there is no transformation of the characters during input or output and what is recorded on the physical device is identical to the program's internal data representation.
A text stream consists of sequence of characters organized into lines, each line terminated by a newline character. To conform to the host system's convention for representing text on physical devices, characters may have to be added altered or deleted during input and output. Thus, there may not be a one-to-one correspondence between the characters in a stream and those in the external representation. These changes occur automatically as part of the mapping associated with text streams. Of course, the input mapping is the inverse of the output mapping and data that are output and then input through text streams will compare equal with the original data.
In EWL, the text stream mapping affects only the linefeed (LF) character, `\n' and the carriage return (CR) character, `\r'. The semantics of these two control characters are:
\n
Moves the current print location to the start of the next line.
\r
Moves the current print location to the start of the current line.
where "current print location" is defined as " that location on a display device where the next character output by the fputc() function would appear" .