首先:

\r就是"回到行首",\n就是"到下一行"

即:\r是回车,\n是换行,前者使光标到行首,后者使光标下移一格。

通常用的Enter是两个加起来的,即\r\n

直接这么说你可能没啥感觉,但是真正到了编码的时候你就发现了——全TM是吭

先举个栗子瞅瞅:

printf aaaa \r\n bbbbbb

print ccccc \n ddddddd

print eeeeeeeee \r ffffff

上面这段代码的输出结果你可能一眼就看出来了。

你说是这样:

aaaa

bbbbbb

ccccc

ddddddd

eeeeeeeee

ffffff

但是真的是你想的那样吗?

事实上结果是下面这样

aaaa

bbbbbb

ccccc

ddddddd

ffffff

由来:

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

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

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

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

Unix系统里,每行结尾只有“”,即“\n”;

Windows系统里面,每行结尾是“”,即“\n\r”;

Mac系统里,每行结尾是“”。

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

后果:

现在再来看看咱们开头举得那个栗子:

printf aaaa \r\n bbbbbb

print ccccc \n ddddddd

print eeeeeeeee \r ffffff

编程时(无论是windows系统还是linux系统)

\r 就是return 回到本行行首,这就会把这一行以前的输出覆盖掉,具体内部细节就像是输出缓冲区重新开始缓冲了一样

而\n 是换行+回车,把光标先移到下一行,然后换到行首->也就是下一行的行首

所以若是看到代码里面本来应该换行的地方变成了整行、

本来该输出整行的时候却只输出了一部分、

那么,查一查是不是你的\r,\n,\r\n哪个用错了吧!(换平台尤其要注意)

linux下面 r和 n的区别,【冷知识】关于/r与/n以及 /r/n 的区别总结相关推荐

  1. R语言 plot swimmer_R语言基础知识学习(四):R中的画图函数--plot()函数

    plot()函数是R中基本的画x-y两个变量的函数,其用法如下为:plot(x, y, ...) 例如:首先我用runif()函数产生了两列随机数:x1,y1,然后用plot()函数直接画图: > ...

  2. excel判断字符串包含另一个字符串_【前端冷知识】如何正确判断一个字符串是数值?...

    在网页中,我们从用户输入的内容中获取的值通常是字符串,但是有时候我们希望用户输入的内容一定要能转成数值: <input id="userInput"> userInpu ...

  3. linux命令行下命令参数前的一横(-)和两横(--)的区别

    linux命令行下命令参数前的一横(-)和两横(--)的区别 原文转自:http://blog.csdn.net/songjinshi/article/details/6816776 在解释这些区别之 ...

  4. Linux常见的发行版SUSE、Ubuntu、RedHat、CentOS、Fedora的联系和区别

    Linux常见的发行版SUSE.Ubuntu.RedHat.CentOS.Fedora的联系和区别 一.SUSE SUSE是指SUSE Linux ,是德国 SuSE Linux AG公司发行维护的L ...

  5. cuda合并访问的要求_CUDA优化的冷知识 5 | 似是而非的计时方法

    这一系列文章面向CUDA开发者来解读<CUDA C Best Practices Guide> (CUDA C最佳实践指南) 大家可以访问: https://docs.nvidia.com ...

  6. IT冷知识--每日一练

    目录 一.IT冷知识--每日一练 战火中的程序员 讽刺的名字 爱,死亡和机器人 浏览器的新时代 C++ 的类型是什么? <纸牌屋>是谁制作的? 盖茨的游戏梦 第一次冒险 铭记一生的悲剧 蠕 ...

  7. Linux包管理器及包安装工具基础知识

    部分内容摘入出处:yum与apt的区别:原创文章,转载请注明出处. 文章目录 一.概述 处理器架构 发行版概念 二.两大主流发行版 RedHat发行系列 Debian发行系列 三.命令与包格式区别 各 ...

  8. 120个IT冷知识,看完就不愁做选择题了

    目录 IT冷知识 01-10 1.冰淇淋馅料 2.蠕虫起源 3.Linux和红帽子 4."间谍软件"诞生 5.游戏主机的灵魂 6.Linux之父 7.NetBSD的口号 8.安卓起 ...

  9. 面试 Linux 运维工作至少需要知道哪些知识?

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 先不说楚枫的这般年纪,能够踏入元武一重说明了什么,最主要的是,楚枫在刚刚踏入核心地带时,明 ...

  10. Linux驱动开发系列:整理入门Ubuntu知识

    文章目录 Linux驱动开发 一.Linux驱动开发第一期:Ubuntu基础入门 1.Vmware虚拟机安装 2.Vmware内Ubuntu功能介绍 2.1 启动栏介绍 2.2 Ubuntu连接USB ...

最新文章

  1. c# try-finally有什么用
  2. 【AcWing 243. 一个简单的整数问题2】
  3. Apache Payara:让我们加密
  4. python 读取csv文件转成字符串_从CSV读取到 dataframe pandas python时dict对象转换为字符串...
  5. 360智能工程中心期待你的加入
  6. 软件测试c s系统和b s,对C/S与B/S架构的产品进行系统测试,有哪些不同点与相同点?...
  7. swift项目调用OC库 和OC项目 在swift文件里面全局调用OC库
  8. JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度
  9. 解决:本地计算机上的MySQL80服务启动后停止,某些服务在未由其他服务或者程序使用时将自动停止
  10. 服务器网口聚合操作文档,服务器网口聚合怎么操作
  11. 动态规划(DP)算法初识
  12. RedHat 8 dnf源配置
  13. Python计算圆的周长与面积
  14. 使用PHP实现密保卡功能
  15. openwrt 打印 APP_HP Smart Tank 511/518/519利用安卓手机设置无线局域网打印方法之二...
  16. 头歌-信息安全-病毒分析与防御
  17. 深度学习在文档矫正中的应用
  18. 题9.1:定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天, 注意闰年问 题。
  19. 谭浩强C++ 第四章
  20. Android程序在模拟器上打不开(秒退)

热门文章

  1. 微信公众号--相关资料
  2. 【u204】高级砝码称重
  3. 迪士尼手机官方专卖东家京破产
  4. MySQL中rename一个view对应的SQL语句
  5. 从中工毕业到年薪30万,我用了2年9个月
  6. Android Adb 源码分析
  7. Android bootchart(二)
  8. gdbc 同步mysql_Jdbc数据同步
  9. LeetCode 1048. 最长字符串链(哈希+DP)
  10. LeetCode 747. 至少是其他数字两倍的最大数