什么是回车&换行

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33),每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。

这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix 系统里,每行结尾只有“”,即“n”;Windows系统里面,每行结尾是“”,即“ nr”;Mac系统里,每行结尾是“”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变 成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12059843/viewspace-997335/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12059843/viewspace-997335/

### LF 在不同操作系统中的含义 在不同的操作系统中,`LF`(Line Feed)作为行结束符有着特定的作用和表现形式。 #### Windows 操作系统 Windows 使用 `CRLF` (`\r\n`) 作为行结束符。其中 `\r` 表示回车 (Carriage Return),`\n` 表示换行 (Line Feed)[^1]。当按下 Enter 键时,实际上向文件中插入了这两个字符。这使得光标先返回行首再移动到下一行的起始位置[^3]。 #### Linux 和 Unix 类操作系统 对于 Linux 及其他类 Unix 系统而言,仅使用 `LF` (`\n`) 来表示新行的开始。这意味着每次遇到此字符时,光标只会向下移至下一列相同的位置而不回到该行开头处[^2]。 #### macOS 操作系统 早期版本的 Mac OS 曾经采用单独的 `CR` (`\r`) 作为其唯一的行分隔符。然而自 MacOS X 发布以来,已经转向遵循 POSIX 标准并主要使用 `LF`(`\n`) 方式来处理文本文件中的换行[^4]。 ### 回车换行的区别 - **回车**:原始意义是指将打印头或屏幕游标的水平位置重置为当前行的第一个可书写位置。 - **换行**:指把光标移到下一行同一相对位置的操作。 两者组合起来即实现了从当前位置跳转到下一行最左侧的效果。不过现代计算机通常只需要一个控制码就能完成这项工作,在大多数情况下就是通过发送单一的 `LF` 或者 `CRLF` 序列实现这一点。 ```cpp // C++ 示例展示如何读取包含不同类型换行符的数据流 #include <iostream> #include <fstream> int main(){ std::ifstream file("example.txt"); char ch; while(file.get(ch)){ if(ch == '\r'){ std::cout << "Detected Carriage Return"; }else if(ch == '\n'){ std::cout << "Detected Line Feed"; } } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值