Search code examples
historycarriage-returnlinefeed

What is the point of using *both* Carriage Returns and Line Feeds?


I'd have thought one was enough. But what's the point of doing CRLF (0x0D0A), when you can simply use CR (0D)? Normally, whenever I'm using strings (C++), I do this:

myString = "Test\nThis should be a new line!\nAnother linefeed.";

NOTE: For non-C++ programmers reading this, "\n" is a linefeed (0x0A).

But should I really be doing this:

myString = "Test\r\nThis should be a new line!\r\nAnother carriage return/linefeed pair.";

NOTE: "\r" means carriage return (0x0D).


EDIT: Should this be on Programmers.SE?


Solution

  • Remember that these codes all came from old Teletype machines. These were effectively typewriters: it was necessary both to advance the paper by a line (line-feed), but also to return the print head (on the carriage) to the left side of the paper (carriage-return).