\r\n 和 \n 区别 (重新排版整理)

\r 回车符
\n 换行符

计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。
一个叫做“回车”,告诉打字机把打印头定位在左边界;
一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。Unix 系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<回车><换行>”,即“ \r\n”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

\b 和 \r

ASCII码转义符
\b = 退格键(backspace)
\r = 回车键(carrige return)

例如, 假设x一个实数型变量,则语句

printf("%d\r", x);
输出x的当前值,然后把光标移到行首。
printf("%d\b, x);
先输出x的当前值,然后再将其消掉,就像我们打字时按退格键一样。
真正常用的转义符是\n(newline换行)
printf("%d\n", x);
输出x的当前值,然后换行到下一行的行首。

Unix(Linux)系统只需要\n就可将光标移到下一行行首;

但在Windows系统中,\n只换行,不移动光标,所以Windows系统中需要把\n和\r结合使用:printf("%d\r\n",x);方可在输出x后把光标移到下一行的行首。

C语言中 \r, \n, \b相关推荐

  1. R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型、分类预测器(分类变量)被自动替换为一组虚拟编码变量、summary函数查看检查模型、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型(Logistic regression).分类预测器(分类变量)被自动替换为一组虚拟编码变量.summary函数查看检查模型.使用t ...

  2. R语言中使用pkgbuild::find_rtools查看是否有Rtools、使用Sys.which函数查看make是否存在、如果没有则安装、使用writeLines函数绑定R和Rtools

    R语言中使用pkgbuild::find_rtools(debug = TRUE)查看是否有Rtools.使用Sys.which函数查看make是否存在.如果没有则安装Rtools.使用writeLi ...

  3. R语言中如何计算C-Statistics?几种计算方法详解

    R语言中如何计算C-Statistics?几种计算方法详解 目录 R语言中如何计算C-Statistics? #包导入 #数据加载编码

  4. bind merge r 和join_R语言中的数据合并函数(merge,cbind和rbind)的使用

    R语言中的数据合并函数(merge,cbind和rbind)的使用-R语言中用cbind() 和rbind() 构建分块矩阵 1.merge函数 两个数据框拥有相同的时间或观测值,但这些列却不尽相同. ...

  5. r指引到文件夹_R语言中进行文件夹及文件夹内文件操作范例

    rm(list=ls()) path = 'J:/lab/EX29 –在R语言中进行文件(夹)操作' setwd(path) cat("file A\n", file=" ...

  6. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf

    ​注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...

  7. R语言中的特殊值 NA NULL NaN Inf

    这几个都是R语言中的特殊值,都是R的保留字, NA:Not available  表示缺失值   用 is.na() 来判断是否为缺失值 NULL:表示空值,即没有内容  用 is.null() 来判 ...

  8. R开发(part8)--应用R语言中的函数环境空间

    学习笔记,仅供参考,有错必纠 文章目录 R开发 应用R语言中的函数环境空间 R语言的函数环境空间 封闭环境 绑定环境 运行环境 调用环境 函数环境空间图示 R开发 应用R语言中的函数环境空间 R语言的 ...

  9. R开发(part2)--R语言中的数学计算

    学习笔记,仅供参考,有错必纠 参考自:<R的极客理想>-- 张丹 文章目录 R开发 R语言中的数学计算 对数 加权平均.连乘.差分.秩.任意数.全体数 阶乘.组合.排列 累加.累乘.最小累 ...

最新文章

  1. time 和 datetime 模块
  2. 【NLP】一行Python代码中自动化文本处理
  3. USART_GetITStatus和USART_GetFlagStatus的区别
  4. opencv中的Mat类型
  5. linux动态库与静态库混合连接
  6. Spring Boot2 集成 jasypt 3.0.4 配置文件敏感信息加密
  7. vue企业网站模板_模板网站VS定制网站,企业如何选择?
  8. Qt工作笔记-在ListWidget中单线程检索数据
  9. python:就喜欢看你看不惯我又干不掉我的样子
  10. ZetCode C#/vb.net 教程
  11. 女生做程序员压力大吗?
  12. Atitit.提升语言可读性原理与实践
  13. android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)
  14. mysql 禁用日志_MYSQL禁用生成日志文件mysql
  15. 【计算机视觉】关于计算机视觉(随谈)
  16. Coursera | Python for Everybody专项课程
  17. 视频批量截取方法,怎样同时对多个视频的一部分进行截取?
  18. (二)通过pygame让游戏人物 动起来
  19. 小米10至尊纪念版配置参数
  20. 在LINUX中怎样用FIDISK分区,fdisk分区命令详解与fdisk非交互式分区

热门文章

  1. 安装svn、git等托管软件
  2. Django之web框架的本质
  3. express接受get数据
  4. Shadow DOM及自定义标签
  5. History of program(1950-2020)
  6. 11-[函数进阶]-闭包
  7. 函数 (四) 迭代器和生成器
  8. qt往mysql中添加数据_qt往数据库添加数据
  9. 本地方法栈线程公有_Java运行时区域,哪些区域是线程私有的?哪些是共有的?...
  10. java默认值_Java中八种基本数据类型的默认值