换行回车
回顾上次内容
-
辨别概念
-
terminal
终端-
主机网络中
- 最终的 端点
-
-
TeleTYpewriter
- 电传打印机
- 终端硬件
-
shell
-
终端硬件根底上的
- 软件壳子
-
-
Console
控制台- 主机旁边 的 控制面板
-
-
存储文件 的 时候
- 我 在文件里 打了回车
\n
- 零碎 将
0x0a
存入字节 进文件 - 换行
主动
就有 回车性能 了吗?🤔
- 我 在文件里 打了回车
-
回顾一下
- 被疏忽的
\r
- 被疏忽的
\r
-
\r
也是一个 ascii 字符-
\
是- 转义字符
-
\r
是- 转义序列
-
-
什么是
本义
呢?- 本义本义 转化含意
- 把原来 两个字符 :
\
和r
- 转化为
\r
这样一个字符
-
没错!
\r
是1
个ascii
字符
-
那么
\r
这一个字符- 对应字节 是
多少
呢?
- 对应字节 是
字节状态
-
\r
对应的字节是0x0d
-
这个
0x0d
- 如同 在安徒生童话中 呈现过
安徒生童话
-
在
文本
观看 模式下- 主动 回车换行
-
在
字节
观看 模式下0a
-
0a
后面是0d
-
先
0a
换行- (line-feed)
-
再
0d
回车- (carriage-return)
-
-
貌似
- 总是 成对呈现的
- 为什么 呢?
换行 和 回车
-
换行
- 对应 字节
0x0a
-
Line-Feed
- 程度 不动
- 垂直 向上喂纸
- 所以是
feed
- 对应 字节
-
回车
- 对应 字节
0x0d
-
Carriage-Return
- 垂直 不动
- 程度
回
到纸张左侧
-
可挪动的打印头
- 运输字符 的 安装 (Carriage)
- 回到行首
- 所以是
Return
- 对应 字节
-
这是
两
个管制信号- 不过他俩 常常 联结应用
联结应用
-
当
CR
和LF
联结应用时- 会将 打印纸张 上移一行
- 打字地位 将
回
到 新行的最左侧
-
也就是
- 明天所了解 的 回车换行
-
电传打字机
- 慢慢 退出了历史舞台
- 当初的纸张 变成了 明天的显示器
- 打字机的按键 也演变为 现在的键盘
-
甚至 有了 操作系统
- 操作系统 是 如何了解 回车换行 的呢?
操作系统 Unix
-
受限于
- 内存和软盘空间 的 有余
-
设计者 决定采纳
-
单
个字符 来示意 换行回车- 应用
\n
代替\r\n
- 默认
\n
=\r\n
- 应用
一
个字符干两
个事
-
-
类 unix(unix-like) 都是如此
- 包含 BSD、Linux
unix 和 c 的羁绊
-
C 语言
- 连续了 这个常规
-
\n
- 既干
\n
的活(换行) - 又干
\r
的活(回车)
- 既干
- 输入中有
\n
的话
-
如果只有
\n
-
本应是
- 下图这样的
-
-
实际上是
- 下图这样的
- 是 回车加换行 的
-
那还有
- 纯换行 不回车的成果 吗?
纯换行
- 纯换行成果能够用
\v
-
\v
在 ascii 中的含意是 VT- 垂直制表位
- 序号是 11
Commodore64 和 mac
-
Commondore64
- 一度 也曾 很风行
-
同样出于 节俭空间的目标
- 应用
\r
代替\r\n
- 这 就有
一致
了
- 应用
- Commodore64 影响了 mac
-
mac
-
晚期 也是
- 应用
\r
代替\r\n
- 甚至按键 都叫做 return
- 应用
-
-
起初 为了 和
unix
保持一致-
从
\r
批改为\n
-
可能是因为
Mac
用户-
须要用
ssh
命令- 连贯
unix-like
的服务器 - 换行不对立
- 文件读取会呈现谬误
- 连贯
-
-
-
-
风行的三大零碎(类 unix、mac、win)
- 两个都是
\n
- 两个都是
- 来来看看 微软的 windows
微软
-
DOS 零碎 是兼容 CP/M 造成的
CP/M
应用\r\n
-
键盘上 印的名称是
enter
-
符号是↵
- 先 LineFeed 再 Return
- 也是
\r\n
- 对应字节是 b ”\x0d\x0a”
-
-
起初 的
windows
- 顺着
DOS
的常规
- 顺着
-
跨零碎 浏览文档的时候
- 会有时候 多行 变成 一行
- 有的会呈现
'0D'
,'^M'
之类的乱码
-
不只是 windows 记事本🗒️
- 而且 微软 office 等
- 都曾有 这个困扰
-
win10 最新的记事本🗒️
- 曾经 优化
python 解释器的了解
-
规范 输入输出流
-
python 的 字符输出
- 靠的是 终端键盘
-
python 的 显示输入
- 靠的是 终端屏幕
-
-
具体字符
-
显示
\n
的时候- 就会换行
- LineFeed
-
显示
\r
的时候- 就会退回到本行结尾
- CarriageReturn
-
-
将
\n
写入文件的时候-
就会以
b"\x0a"
的字节模式- 存储 在 文件 中
-
-
将
\r
写入文件的时候-
就会以
b"\x0d"
的字节模式- 存储 在 文件 中
-
-
python3 解释器 基于
操作系统
操作系统
基于cpu 架构
-
不论什么样的
操作系统
、cpu 架构
- 只有是 python 解释器
-
对于
\n
、\r
的解释形式 就是对立的\n
换行\r
退到行头
-
这种对立 是跨平台的
- 跨零碎、跨 cpu 架构的
总结
- 对于换行和回车
-
不同层面的了解
-
电传打字机
- 两件事
- 常常 一起干
- 但也能够 别离干
-
不同操作系统
-
unix-like
- 带头简化 成
\n
- 各自为政 就好
- 带头简化 成
-
mac
- 为了 防止麻烦
- 我和 unix-like 统一
-
windows
- 原来 我用户多
- 定什么规矩 我说了算
- 惹了 很多问题
- 当初 我还是 随大流 吧
-
-
python 解释器
unix-like
做得对- 不论 在什么零碎、什么架构 上
- 在我 python 上 是对立 的
-
-
光说不练假把式
- 我能看看电传打字机吗?🤔
- 咱们下次再看!👋蓝桥 ->https://www.lanqiao.cn/course…
- github->https://github.com/overmind19…
- gitee->https://gitee.com/overmind198…
- 视频 ->https://www.bilibili.com/vide… 作者:oeasy