Java中的回车换⾏符nrt
'\r'是回车,'\n'是换⾏,前者使光标到⾏⾸,后者使光标下移⼀格。通常⽤的Enter是两个加起来。下⾯转⼀篇⽂章。
回车和换⾏
今天,我总算搞清楚“回车”(carriage return)和“换⾏”(line feed)这两个概念的来历和区别了。
在计算机还没有出现之前,有⼀种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有⼀个问题,就是打完⼀⾏换⾏的时候,要⽤去0.2秒,正好可以打两个字符。要是在这0.2秒⾥⾯,⼜有新的字符传过来,那么这个字符将丢失。
于是,研制⼈员想了个办法解决这个问题,就是在每⾏后⾯加两个表⽰结束的字符。⼀个叫做“回车”,告诉打字机把打印头定位在左边界;另⼀个叫做“换⾏”,告诉打字机把纸向下移⼀⾏。
这就是“换⾏”和“回车”的来历,从它们的英语名字上也可以看出⼀⼆。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,⼀些科学家认为在每⾏结尾加两个字符太浪费了,加⼀个就可以。于是,就出现了分歧。
Unix系统⾥,每⾏结尾只有“<;换⾏>”,即“\n”;Windows系统⾥⾯,每⾏结尾是“<;换⾏><;回车>”,即“\r\n”;Mac系统⾥,每⾏结尾是“<;回车>”。⼀个直接后果是,Unix/Mac系统下的⽂件在Windows⾥打开的话,所有⽂字会变成⼀⾏;⽽Windows⾥的⽂件在Unix/Mac下打开的话,在每⾏的结尾可能会多出⼀个^M符号。linux换行按哪个键
c语⾔编程时(windows系统)\r 就是return 回到本⾏⾏⾸这就会把这⼀⾏以前的输出覆盖掉
如:
int main() {
cout << "hahaha" << "\r" << "xixi" ;
}
最后只显⽰ xixi ⽽ hahaha 被覆盖了
\n 是回车+换⾏把光标先移到⾏⾸然后换到下⼀⾏也就是下⼀⾏的⾏⾸拉
int main() {
cout << "hahaha" << "\n" << "xixi" ;
}
则显⽰
hahaha
⼀下是⾃⼰的总结。
/t相当于键盘的Tab键,/n换⾏New Line,/r回车Carriage Return,基本的概念应该是回车表⽰回到最前⾯,换⾏表⽰换⼀⾏。
操作系统的不同,换⾏符操也不同:
\r Mac
\n Unix/Linux
\r\n Windows
⾃⼰的测试:windows,IDEA。\r只是回车回到⾏⾸
public class Return {
public static void main(String args[]){
System.out.println("1111\r222");
System.out.println("-------");
System.out.println("1111\n222");
System.out.println("-------");
System.out.println("1111\r\n222");
}
}
222
-------
1111
222
-------
1111
222
blog.csdn/z931284151/article/details/49130297?utm_source=copy