`
huiqinbo
  • 浏览: 344755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

\r \n有什么区别[回钦波欣赏]

阅读更多

'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。下面转一篇文章。



回车和换行
今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

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

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

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

Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

c语言编程时(windows系统)\r 就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉
如:
int main() {
cout << "hahaha" << "\r" << "xixi" ;
}
最后只显示 xixi 而 hahaha 被覆盖了
\n 是回车+换行 把光标 先移到 行首 然后换到下一行 也就是 下一行的行首拉
int main() {
cout << "hahaha" << "\n" << "xixi" ;
}
则 显示
hahaha
xixi
n是换行,\r是回车.它们合在一起才是我们想要的--回车换行.
但一般我们输入\n就行了,并且写入文件后,你再打开这个文件看看,光一个\n就实现了回车和换行2个功能.
问题是当我们以文本编辑数据时,如果只用\n的话,WINDOWS会在后台帮我们实现从\n-->\r\n的转换的.所以我们可以不用特意输入\r\n就行了.
但你也该知道,打开文件函数都有个选项,就是以二进制还是文本方式打开,如果选择二进制打开的话,情况就完全不同了,有\r没\r是不同的.你可以自己实验下!而且注意文件大小都是不一样的.
分享到:
评论

相关推荐

    R语言小波分析wavelet

    ### R语言中小波分析的应用与实现 #### 一、引言 小波分析是一种重要的信号处理技术,尤其适用于非平稳信号的分析。它能够提供时间与频率的局部化信息,从而帮助研究人员理解信号中不同成分随时间的变化情况。在...

    R波检测,r波检测算法,matlab

    在心电图(ECG)分析中,R波检测是一项至关重要的任务,因为R波标志着心脏心动周期中的一个关键事件——心室激动的起点。R波的定位对于心律失常的诊断、心率计算以及许多其他临床应用具有决定性的作用。在本项目中,...

    n维实数空间R^n是完备度量空间1

    在n维欧式空间$\mathbb{R}^n$中,度量通常由欧几里得距离给出,即$d((x_1, x_2, ..., x_n), (y_1, y_2, ..., y_n)) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2 + ... + (x_n - y_n)^2}$。 定理8.1.4表明,n维欧式空间$...

    N-FINDR解混算法研究

    ### N-FINDR 解混算法研究 #### 摘要 N-FINDR(Near-Infrared Feature Identification and Determination Routine)是一种快速自主光谱端元确定算法,在高光谱数据处理领域具有重要的应用价值。该算法由Michael E....

    RTL8367N-VB与 引脚差别对照文档

    文档标题《RTL8367N-VB与引脚差别对照文档》揭示了文档的核心内容,即对两款单芯片5端口10/100/1000M交换控制器——RTL8367N-VB与RTL8367N的引脚差异进行对比分析。通过这份文档,硬件和软件工程师可以获得关于...

    Intel(R) Centrino(R) Wireless-N 1000

    Intel(R) Centrino(R) Wireless-N 1000是一款由英特尔公司推出的无线网络适配器,主要用于笔记本电脑和个人计算机,提供Wi-Fi连接功能。这个技术平台是英特尔Centrino系列的一部分,旨在提供高性能、低功耗的无线...

    前端项目-tern.zip

    Tern是一个强大的工具,特别设计用于提供深度的跨编辑器语言支持,从而提高开发者的编码速度和准确性。 Tern是一个开源项目,其核心功能是为JavaScript开发提供智能代码补全、类型检查和文档查找。通过理解和解析...

    R语言4.4.1及RStudio、RTools安装包合集

    R语言4.4.1及RStudio、RTools安装包合集

    tern_for_vim, Vim的Tern插件.zip

    tern_for_vim, Vim的Tern插件 用于Vim的这是一个 Vim插件插件,提供了 Tern 支持的editing编辑支持。在JavaScript文件中,包将钩子到 omni完成以处理自动补全,并提供以下命令:TernDef: 跳转到光标下的内容定义。...

    ECG信号R波定位函数.m

    对ECG信号进行R波定位,适合ECG信号处理人员。

    Intel(R) Centrino(R) Wireless-N 105

    **Intel(R) Centrino(R) Wireless-N 105详解** Intel Centrino Wireless-N 105是Intel公司推出的一款入门级无线局域网(WLAN)适配器,专为笔记本电脑和其他移动设备设计。这款无线网卡支持802.11n标准,提供了比...

    I-RZN控制算法 (2004年)

    ### I-RZN 控制算法详解 #### 一、引言 在自动控制领域,PID控制器因其简单有效的特性而被广泛应用于工业控制系统中。然而,随着技术的发展和需求的提高,传统PID控制器的一些局限性逐渐显现出来,比如对于复杂非...

    基于R语言实现的线性样条+B样条+N-W核估计+最近邻估计+局部多项式【有数据+有代码+有图】

    用于函数估计的非参数方法大致上有三种:核方法、局部多项式方法、样条方法。 非参的函数估计的优点在于稳健,对模型没有什么特定的假设,只是认为函数光滑,避免了模型选择带来的风险;但是,表达式复杂,难以解释...

    使用python编写心电相关的算法,包括滤波,R波识别,心率计算

    在心电图(ECG)分析领域,Python作为一种强大的编程语言,因其丰富的库支持和易读性而被广泛用于开发算法。本项目聚焦于利用Python实现心电图处理的几个核心环节,包括滤波、R波检测、心率计算、特征提取、心率失常...

    有重复元素的排列问题设R={ r , r , , rn 1 2 可能相同。试设计}是要进行排列的n个元素。其中元素n r , r , , r 1 2

    有重复元素的排列问题 Description 设R={ r , r , , rn 1 2 可能相同。试设计}是要进行排列的n个元素。其中元素n r , r , , r 1 2 一个算法,列出R的所有不同排列。 编程任务: 给定n 以及待排列的n 个元素...

    R语言及RStudio的安装包及相关资源

    RStudio则是一个集成开发环境(IDE),为R语言提供了更加友好和高效的开发界面,包括代码编辑、调试、项目管理等功能。 在开始安装R和RStudio之前,你需要确保你的操作系统(Windows、MacOS或Linux)满足基本的系统...

    小波分析matlab相关函数

    wfilters 函数的语法格式为:[lo-d, hi-d, lo-r, hi-r] = wfilters('wavename'),其中 wavename 是小波名称。 6.DWTMODE:离散小波变换模式 DWTMODE 是离散小波变换模式,它可以设置小波变换的模式。Matlab 提供了...

    基于正交小波的心电R波检测

    基于正交小波包的心电R波检测。signal是12导心电信号,R1是返回的R波波峰的位置。

Global site tag (gtag.js) - Google Analytics