差别:

  • \r:

    • 全称:carriage return (carriage是“字车”的意思。打印机上的一个部件)
    • 简称:return
    • 缩写:r
    • ASCII码:13
    • 作用:把光标移动到当前行的最左边
  • \n: 
    • 全称:new line
    • 别名:line feed
    • 缩写:n
    • ASCII码:10
    • 作用:把光标向下移动一行

不同操作系统如何表示“回车+换行”(即一行的结束):
  • Unix、Linux:\n表示回车+换行,\r没什么意义
  • Windows、DOS:\r\n表示回车+换行。顺序不能变
  • Mac:\r表示回车+换行

历史:

机械的英文打字机:在打字机上。有一个部件叫“字车”(carriage),每输入一个单词,“字车”就前进一格。

当输满一行后。使用者就要推动“字车”到起始位置。这时打字机会有两个动作:“字车”归位、滚筒(roller)上卷一行(相当于“字车”下移一行),以便開始输入下一行。

这两个动作合起来叫做“回车”,相当于如今键盘中的“Enter”键。

电传打字机:(Teletype Model 33,Linux/Unix下的tty概念也来自于此)每秒钟能够打10个字符。

可是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好能够打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决问题,就是在每行后面加两个表示结束的字符。一个叫做“回车(return)”。告诉打字机把打印头定位在左边界;还有一个叫做“换行(newline)”。告诉打字机把纸向下移一行。后来这两个动作被缩写为“\r”和“\n”。


编程语言中怎样使用:
由于Unix中是用“\n”表示一行的结束。所以在C语言(以及其它C语言的继承者,比方C++, Java)中能够直接使用“\n”,在不同的操作系统中会被自己主动转换成对应的字符(比方在Windows中会被转成“\r\n”)。

(原创文章,转载请注明转自Clement-Xu的博客)

\r与\n有何差别,编码的时候应该怎样使用的更多相关文章

  1. CTF中那些脑洞大开的编码和加密

    0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表哥,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进 ...

  2. CTF中编码与加解密总结

    CTF中那些脑洞大开的编码和加密 转自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到 ...

  3. [CTF]中那些脑洞大开的编码和加密

    [CTF]中那些脑洞大开的编码和加密 摘自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会 ...

  4. Golomb及指数哥伦布编码原理介绍及实现

    2017年的第一篇博文. 本文主要有以下三部分内容: 介绍了Golomb编码,及其两个变种:Golomb-Rice和Exp-Golomb的基本原理 C++实现了一个简单的BitStream库,能够方便 ...

  5. day 0308 编码的进阶 文件操作

    一.编码的进阶: 在python3以后,字符串和bytes类型彻底分开,字符串以字符为单位进行处理的,bytes类型是以字节为单位处理的. bytes数据类型在所有的操作和使用与字符串方法基本一样,也 ...

  6. \r\n 如何转换成utf-8格式的,在jsp页面中正常显示换行

    数据库中存的换行是\r\n,读取到UTF-8编码的JSP 页面上以后,没有换行 在jsp页面显示之前,要进行一下字符转换,将所有\r\n转换成<br>,如下: String result  ...

  7. day4-基础 字符串操作,文件操作,字符转编码

    1.字符串用法 name = 'daniel' print(name.capitalize()) #首字母大写 >>>daniel print(name.count('a')) #统 ...

  8. DAY2-python数据类型、字符编码、文件处理

    阅读目录 一.引子 二.数字 三.字符串 四.列表 五.元祖 六.字典 七.集合 八.数据类型总结 九.运算符 十.字符编码 十一.文件处理 一.引子 1 什么是数据? x=10,10是我们要存储的数 ...

  9. 格伦布编码——rice编码无非是golomb编码M为2^x的特例

    格伦布编码 格伦布编码是一种无失真资料压缩方法,由数学家所罗门·格伦布在1960年代提出. Rice编码 Robert F. Rice提出Rice 编码,是以哥伦布编码为基础做改良而更简易的前置码.R ...

随机推荐

  1. HDU 变形课 1181【DFS/BFS】

    变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submissi ...

  2. POJ 1988 Cube stacking【并查集高级应用+妙用deep数组】

    Description Farmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes ...

  3. Hash算法详解

    这篇不错: https://blog.csdn.net/u014209205/article/details/80820263

  4. 福州三中集训day4

    第6天写第4天的博客….可以说是很弱了…… 讲了一天的高级数据结构,可以说很迷,先是并查集,然后是树状数组,线段树,MAP函数,KMP算法. 很难……确实不是很清楚…但是很重要,回去以后这应该说是优先 ...

  5. LCA+差分【p4427】[BJOI2018]求和

    Description master 对树上的求和非常感兴趣.他生成了一棵有根树,并且希望多次询问这棵树上一段路径上所有节点深度的\(k\) 次方和,而且每次的\(k\) 可能是不同的.此处节点深度的 ...

  6. 卡特兰数 3134 Circle

    3134 Circle  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 在一个圆上,有2*K个不同的结点,我们 ...

  7. mfc afxbeginthread()

    在进行多线程程序设计的时候,我们经常用到AfxBeginThread函数来启动一条线程该函数使用起来非常的简单方便,其定义如下 CWinThread* AfxBeginThread(   AFX_TH ...

  8. 【可持久化Trie】【set】bzoj3166 [Heoi2013]Alo

    枚举每个数,计算以其为次大数的最大区间,显然,只需要用这个区间的答案 对 答案进行更新即可. 找到每个数右侧.左侧第1.2个比它大的数,然后分类讨论一下即可. 找到的过程中把数sort以后,从大到小把 ...

  9. 使用jQuery操作DOM(ppt练习)

    <!DOCTYPE html> <html> <head> <title>test3.html</title> <meta http- ...

  10. 微信开发之消息接收与回复--weixin-java-tools

    一.前言 在上一篇文章<微信开发之如何使用开发工具--weixin-java-tools>中我给各位介绍了weixin-java-tools,并且介绍了如何使用weixin-java-to ...