• 终于记住回车和换行cr lf的来由和含义了 -参考: http://www.cnblogs.com/me115/archive/2011/04/27/2030762.html


    回车: carriage return, 是将光标在同一行中, 回到当前行的 行首. 回来的本意就是 返回.. 所以 是同一行的行首. CR
    换行: line feed: feed: 饲养(动物); 喂养(孩子); 供给, 供应的意思. LF

    回车 用 符号表示, 十进制值是 13, 十六进制是: 0x 0d.
    换行: 用 表示, 十进制值是10, 十六进制是 0x 0a

    unix 类系统, 适用 的是 换行, lf, , mac系统适用 的是 回车 , CR 而windows 系统使用的是 回车+ 换行: CR/LF
    所以, unix/mac系统下的文本文件, 在windows下, 会全部是一行, 而 windows ->unix系的文本文件, 在每一行的末尾, 会多一个控制符号 : ^M就是 的符号.

    历史由来:

    • 电传打字机, 每秒打10个字, 1个字占0.1秒, 打完一行字后, 要把打字头 移动到下一行的开头, 需要 花 0.2秒时间. 那么, 如果 这时候 , 有字符连续传送过来时, 就会有2个字符被丢失.
    • 所以, 如果在 "要打的文字信息内容 的每一行末尾, 加上两个 字符(0.2秒) 的 "占位符" --什么字符都可以, 只是起到占位的作用, 那么当 打字机的打印头移动下一行的开头位置时, 就刚好过去0.2秒, 那么文字信息的内容, 里面两个占位符的时间也是0.2秒, 就刚好接到 新的字符内容, 而不会丢失.

    -为了将这两个占位字符 更形象化, 就跟 打字头 的动作 相一致, 打字机的打字头 移动一行的头部, 给一个符号 叫 carriage return 即CR即 回车( 这个车, 指的是 打字机头)
    而打字机的纸张向上/下 送给新的一行, 叫做 line feed,即LF/

    这个就是 CR/LF的由来. 后来将这个 设计 移动/移植到 计算机中来, 让 每个文本文件 的 每一行, 也用 这种分割换行符号. 当时由于存储器比较昂贵, 对于计算机中的文本文件, 如果在每一行的末尾 加上这些 CR/LF符号后, 比如会增加文件的大小, 增加文件的字节数/ 存储大小. 所以, 在不同的系统中, 对这个 CR LF就发生了分歧,

    在 类Unix系统中,使用 LF 来分割,
    在Mac中使用 来分割,
    而在 Win系统中, 则适用 CR lf : 来表示.

    注意 , 这个时候, 的 CR LF 已经就没有 电传打字机的 0.2 秒占位符的 意思了. 而是, 只是说 作为 文本文件中, 每一行的 分割符号了. 更有甚者, 就是 在 程序设计, 编程语言中, 将这些 作为语句的结束符号, 作为 编程语言的 编译器/解释器 作为 语法 分析的 主要 依据了!

    **而 linux中的 col 命令: 就是 : CR or LF 的意思??? 就是用来过滤 控制字符的 意思, 主要 用在 如 man command等命令 的 输出 中 用 管道 来 过滤 这些 控制 字符 然后输出 到 普通文件中 ** 比如: man ls | col > ls.help

    cols------------???????????/

  • 相关阅读:
    精简菜单和完整菜单之间进行切换
    QBC运算符含义
    STL源代码剖析——STL算法stl_algo.h
    TI_DSP_corePac_带宽管理
    scrapy-redis源代码分析
    SVG 贝塞尔曲线控制【方便设置】:贝塞尔曲线
    Zoj 2100 Seeding
    快慢指针和链表原地反转
    Gradle 编译多个project(包括多Library库project依赖)指导
    供应商地点信息更新
  • 原文地址:https://www.cnblogs.com/bkylee/p/7842890.html
Copyright © 2020-2023  润新知