新岁第一帖:有关\r和\n的区别

新年第一帖:有关\r和\n的区别
    首先祝各位坛友新年快乐,万事如意!
    我对转义字符当中的 '\r\'和 '\n'的差别不甚了了,请各位说说看,这二者差别何在?我在C语言的例子里多看到 '\n'而极少看到 '\r',而在Java的例子里却很多时候同时见到 '\n'和 '\r'。谢谢!
------解决方案--------------------
本帖最后由 thefirstz 于 2014-01-01 10:29:54 编辑
\r指return,光标会回到该行的最前面,\n指newline,光标会前进到下一行,但位置不一定是最前面,而是上一行光标所在的那个位置,对于以前的打印机,如果想从新一行开头重新打印,就需要这两个一起使用
现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用
------解决方案--------------------
楼上正解,具体情况具体分析,C语言里有时也同时使用
------解决方案--------------------
引用:
Quote: 引用:

\r指return,光标会回到该行的最前面,\n指newline,光标会前进到下一行,但位置不一定是最前面,而是上一行光标所在的那个位置,对于以前的打印机,如果想从新一行开头重新打印,就需要这两个一起使用
现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用

谢谢,thefirstz。光标不一定在最前面,那在哪里?没有一个固定的位置吗?如何验证这一点呢?

比如上一行的光标在第40个字符处,\n会让光标还在下一行的第40字符处,不会回到第一个字符即行开始的地方
------解决方案--------------------
\r 本行的行首!
\n 换行!
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

\r指return,光标会回到该行的最前面,\n指newline,光标会前进到下一行,但位置不一定是最前面,而是上一行光标所在的那个位置,对于以前的打印机,如果想从新一行开头重新打印,就需要这两个一起使用
现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用

谢谢,thefirstz。光标不一定在最前面,那在哪里?没有一个固定的位置吗?如何验证这一点呢?

比如上一行的光标在第40个字符处,\n会让光标还在下一行的第40字符处,不会回到第一个字符即行开始的地方

我试验了一下,好像光标还是去到了下一行的行首。
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  printf("This is a test of the escape sequence of \'\\n\'.\n");
  getch();
  //system("PAUSE");
  return 0;
}


现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用
------解决方案--------------------
控制符,还是看当前编译器的说明比较好

------解决方案--------------------
引用:
\r 本行的行首!
\n 换行!

版主高手一针见血