什么是回车、换行和换页?

以下控制字符的含义是什么?

1.回车

2.换行

3.换页

对该问题的评论 (3)

回车的意思是返回到当前行的开头,而不向下推进。 这个名字来自于打印机'的回车,因为这个名字被创造出来的时候,显示器还很少见。 通常转义为"r/r",缩写为CR,ASCII值为13或0x0D。

Linefeed的意思是向下推进到下一行。 但是,它已被重新使用并重新命名。 作为"newline"使用,它结束行(通常与*隔行相望混淆)。 通常转义为"新行",缩写为LF或NL,ASCII值为10或0x0A。 CRLF(但不是CRNL)用于对"\r\n"。

Form feed的意思是向下推进到下一个"页"。 它通常用作分页符,但现在也被用作章节分隔符。 (它在源代码中不常用来划分逻辑上独立的函数或函数组。)文本编辑可以在"插入分页符"时使用这个字符。 这通常被转义为"\f",缩写为FF,其ASCII值为12或0x0C。

作为控制字符,它们可能有不同的解释。

最常见的区别(可能也是唯一值得担心的区别)是Windows上以CRLF结尾的行,Unix-like上以NL结尾的行,而在老的Mac上以CR结尾的行(这种情况在OS X上已经改变了,和Unix一样)。 注意从LF到NL的意义转变,对于完全相同的字符,给出了Windows和Unix的区别。 (当然,Windows比Unix新,所以它没有采用这种语义转变。 我不知道Macs使用CR的历史。)许多文本编辑器可以读取这三种格式中任何一种格式的文件,并在它们之间进行转换,但不是所有的实用程序都可以。

Form feed比较有趣(尽管直接使用的情况较少),按照通常的分页符定义,它只能出现在行与行之间(例如,在? NL、CRLF或CR的换行序列之后),或者在文件的开始或结束处。

评论(4)

r是回车,把光标往后移,就像if i will do-一样

printf("stackoverflow\rnine")
ninekoverflow

意味着它已经将光标移到了"stackoverflow&quot.的开头,并覆盖了自"九"开始的四个字符。 并覆盖了开始的四个字符,因为"九" 是四个字符。

n是新行字符,它改变了行,并将光标移到新行的开始,比如----------。

printf("stackoverflow\nnine")
stackoverflow
nine

f是form feed,它的用途已经过时了,但它是用来提供压痕的,比如:

printf("stackoverflow\fnine")
stackoverflow
             nine

如果我会写喜欢

printf("stackoverflow\fnine\fgreat")
stackoverflow
             nine
                 great
评论(5)

请看一下维基百科

基于ASCII或兼容字符集的系统单独使用LF(换行,'\n',0x0A,十进制为10)或CR(回车,'\r',0x0D,十进制为13),或CR后加LF(CR+LF,0x0D 0x0A)。这些字符是基于打印机的命令。换行表示应从打印机中送出一行纸,回车表示打印机滑块应返回到当前行的开头。

评论(0)

f用于分页。 你不能在控制台看到任何效果。 但是当你在你的文件中使用这个字符常量时,你可以看到不同的效果。

另一个例子是,如果你可以将你的输出重定向到一个文件,那么你就不需要写一个文件或使用文件处理。

例如

用c++写这段代码


void main()    
{
    clrscr();
    cout
评论(0)

除了上述信息,LF(\n)和CR(\r)还有一段有趣的历史。 原作者:阮一峰 : 阮一峰 来源 : [http://www.ruanyifeng.com/blog/2006/04/post_213.html] ][1] 在电脑出现之前,有一种电传打字机叫Teletype Model 33。 它每秒钟可以打印10个字符。 但是有一个问题,每一行打印完后,需要0.2秒才能转到下一行,也就是打印2个字符的时间。 如果在这0.2秒内有新的字符转移,那么这个新的字符就会丢失。

所以科学家们找到了解决这个问题的方法,他们在每行后面加了两个结束符,一个是'回车',就是告诉打印机把打印头向左转。 另一个是'换行',它是告诉打印机将纸张向上移动1行。

后来,电脑普及了,这两个概念就用在了电脑上。 当时的存储设备很贵,所以有科学家说,每行末尾加两个字符很贵,一个就够了,所以对用哪个有一些争论。

在UNIX/Mac和Linux中,'\n&#39。 放在每行末尾,在Windows中,'\r/n'放在每行末尾。 是放在每一行的末尾。 这样使用的结果是,如果在Windows中打开UNIX/Mac中的文件,将以一行显示。 而在Windows中的文件如果在UNIX或Mac中打开,每行末尾会有一个^M。

[1]: http://www.ruanyifeng.com/blog/2006/04/post_213.html

评论(2)

在旧的纸张打印机终端上,推进到下一行包括两个动作:将打印头移回水平扫描范围的起点(回车)和推进正在打印的纸卷(换行)。

由于我们不再使用纸质打印机终端,这些动作不再有实际意义,但用来表示这些动作的字符却以不同的形式存在着。

评论(2)

考虑一台IBM 1403冲击式打印机。 CR将打印头移动到行的开始处,但没有推进纸张。 这样就可以实现"叠印",在一行上放置多行输出。 像下划线这样的事情就是通过这种方式实现的,BOLD打印也是如此。 LF将纸张提前一行。 如果没有CR,下一行将以交错步幅打印,因为LF没有移动打印头。 FF将纸张推进到下一页。 它通常也会将打印头移动到新页面上第一行的开始,但你可能需要CR来实现。 可以肯定的是,大多数程序员在页面上最后一行的末尾都会编码CRFF而不是CRLF,因为FF创建的额外CR并不重要。

评论(1)

作为补充。

1、回车。 是打印机的术语,意思是将打印位置改为**行的开始。 在计算机世界里,大多数情况下是指返回到当前行的开头,但很少代表新行。

2、行进纸。 是打印机的术语,意思是将纸张前进一行。 所以回车和换行一起使用,是指在新行开始时开始打印。 在计算机世界里,它一般和新行的含义相同。

3、送表。 这是一个打印机术语,我喜欢[这个帖子][1]中的解释。

如果你是为80年代风格的打印机编程,它会弹出

纸,并开始新的一页。 您几乎可以确定永远不需要 它。 它。

http://en.wikipedia.org/wiki/Form_feed

它几乎已经过时了,你可以参考[Escape sequence \f-form feed--到底是什么?][2]来详细解释。

注意,我们可以在一些平台上用CR或LF或CRLF来代表newline,但在其他一些平台上newline不能被他们代表。 详情请参考[wiki Newline][3]。

LF.Multics,Unix和Unix。 Multics、Unix和类Unix系统(Linux、OS X、FreeBSD、AIX。

Xenix等)、BeOS、Amiga、RISC OS等。

CR: Commodore 8位机、Acorn BBC、ZX Spectrum、TRS-80、Apple。 &gt.II家族,Oberon,经典的Mac OS到9版本,MIT Lisp。 II系列,Oberon,经典的Mac OS到第9版,MIT Lisp。

机器和OS-9

RS.QNX在POSIX之前的实施 QNX pre-POSIX实施

0x9B: 雅达利8位机使用ASCII的ATASCII变体(155进制)。 > 十进制)

CR+LF。 微软视窗、DOS(MS-DOS、PC DOS等)、DEC TOPS-10。

RT-11、CP/M、MP/M、Atari TOS、OS/2、Symbian OS、Palm OS、Amstrad CPC。

和大多数其他早期的非Unix和非IBM的操作系统。

LF+CR。 Acorn BBC和RISC OS spooled文本输出。

[1]: https://stackoverflow.com/a/4334414/3378204 [2]: https://stackoverflow.com/questions/4334370/escape-sequence-f-form-feed-what-exactly-is-it [3]: [3]:https://en.wikipedia.org/wiki/Newline

评论(0)

回车和换行也是指打字机,只要轻轻推一下滑车左侧的手柄(纸的地方),纸就会绕着滚筒旋转一小圈,将文件推进一行,如果你打完一行,想继续打下一行,你就用力推一下,既推进了一行,又将滑车一直滑到右边,然后再继续向左向右打。 如果你打完了一行,想继续打下一行,你就用力推,既推进了一行,又使笔筒一直向右滑动,然后随着笔筒每打一次键,又从左向右恢复打字。 不用说,包字是那个时代所有文字处理的默认设置。 P:D

评论(0)

"\n"是换行符。 它意味着结束当前的行,并为正在阅读的人转到一个新的行。

评论(0)

这些都是非打印字符,与"新行"的概念有关。 \nd是换行。 `r是回车。 在不同的平台上,相对于有效的新行,它们有不同的含义。 在windows下,新行是 \rr\n. 在linux中,则是 \n. 在Mac中,是\r。

在实践中,你把它们放在任何字符串中,都会对字符串的打印输出产生影响。

评论(0)