A carriage return, sometimes known as a cartridge return and often shortened to CR, <CR> or return, is a control character or mechanism used to reset a device's position to the beginning of a line of text. It is closely associated with the line feed and newline concepts, although it can be considered separately in its own right, as explained further below.
Originally, the term "carriage return" referred to a mechanism or lever on a typewriter. It was used after typing a line of text and caused the assembly holding the paper (the carriage) to return to the right so that the machine was ready to type again on the left-hand side of the paper (assuming a left-to-right language). The lever would also usually advance the paper to the next line.
The first power carriage return was added to electric typewriters by Smith Corona in 1960. The command key for this was usually labeled "carriage return" or "return". With typewriters like the Selectric, where the type element was moved when typing and the paper held stationary, the key returned the type element to the left and the term "carrier return" was sometimes used for this function.
To improve the keyboard for non-English-speakers, the symbol ↵ (U+21B5, HTML entity
↵) was introduced to mark this key, since this graphic could communicate the action of the key without using words.
In computing, the carriage return is one of the control characters in ASCII code, Unicode, EBCDIC, and many other codes. It commands a printer, or other output system such as the display of a system console, to move the position of the cursor to the first position on the same line. It was mostly used along with line feed (LF), a move to the next line, so that together they start a new line. Together, this sequence can be referred to as CRLF.
The carriage return and line feed functions were split for practical reasons:
- Carriage return by itself provided the ability to overprint the line with new text. This could be used to produce bold, underscores, accented characters, strike out text, and some composite symbols.
- Early mechanical printers were too slow to return the carriage in the time it took to process one character. Therefore, the time spent sending the line feed was not wasted (often several more characters had to be sent to ensure the carriage return had happened before sending a printing character). This is why the carriage return was always sent first.
- It was then also possible to fit multiple line feed operations into the time taken for a single carriage return—for example for printing doublespaced text, headers/footers or title pages—to save print and transmission time without the need for additional circuitry or mechanical complexity to "filter out" spurious additional CR signals.
As early as 1901 Baudot code contained separate carriage return and line feed characters.
Many computer programs use the carriage return character, alone or with a line feed, to signal the end of a line of text, but other characters are also used for this function (see newline); others use it only for a paragraph break (a "hard return"). Some standards which introduce their own representations for line and paragraph control (for example HTML) and many programming languages treat carriage return and line feed as whitespace.
In ASCII and Unicode, the carriage return is defined as 13 (or hexadecimal 0D); it may also be seen as control+M or ^M. In the C programming language, and many other languages influenced by it,
\r denotes this character.
- Eric S. Roberts. The Art and Science of C. Addison-Wesley, 1995. p311.