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

mcmay 2014-01-01 09:50:19
首先祝各位坛友新年快乐,万事如意!
我对转义字符当中的 '\r\'和 '\n'的差别不甚了了,请各位说说看,这二者差别何在?我在C语言的例子里多看到 '\n'而极少看到 '\r',而在Java的例子里却很多时候同时见到 '\n'和 '\r'。谢谢!
...全文
102 点赞 收藏 10
写回复
10 条回复
昵称很不好取 2014年01月01日
引用 3 楼 mcmay 的回复:
[quote=引用 1 楼 thefirstz 的回复:] \r指return,光标会回到该行的最前面,\n指newline,光标会前进到下一行,但位置不一定是最前面,而是上一行光标所在的那个位置,对于以前的打印机,如果想从新一行开头重新打印,就需要这两个一起使用 现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用
谢谢,thefirstz。光标不一定在最前面,那在哪里?没有一个固定的位置吗?如何验证这一点呢?[/quote] 比如上一行的光标在第40个字符处,\n会让光标还在下一行的第40字符处,不会回到第一个字符即行开始的地方
回复 点赞
mcmay 2014年01月01日
引用 1 楼 thefirstz 的回复:
\r指return,光标会回到该行的最前面,\n指newline,光标会前进到下一行,但位置不一定是最前面,而是上一行光标所在的那个位置,对于以前的打印机,如果想从新一行开头重新打印,就需要这两个一起使用 现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用
谢谢,thefirstz。光标不一定在最前面,那在哪里?没有一个固定的位置吗?如何验证这一点呢?
回复 点赞
liuzihe1979 2014年01月01日
楼上正解,具体情况具体分析,C语言里有时也同时使用
回复 点赞
昵称很不好取 2014年01月01日
\r指return,光标会回到该行的最前面,\n指newline,光标会前进到下一行,但位置不一定是最前面,而是上一行光标所在的那个位置,对于以前的打印机,如果想从新一行开头重新打印,就需要这两个一起使用
现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用
回复 点赞
mcmay 2014年01月01日
引用 6 楼 max_min_ 的回复:
\r 本行的行首! \n 换行!
版主正解!我是学了后面的,忘了前面的,该打!
回复 点赞
ANGUD 2014年01月01日
引用 6 楼 max_min_ 的回复:
\r 本行的行首! \n 换行!
版主高手一针见血
回复 点赞
richyhuang 2014年01月01日
控制符,还是看当前编译器的说明比较好
回复 点赞
Pump天天学习 2014年01月01日
引用 5 楼 mcmay 的回复:
[quote=引用 4 楼 thefirstz 的回复:] [quote=引用 3 楼 mcmay 的回复:] [quote=引用 1 楼 thefirstz 的回复:] \r指return,光标会回到该行的最前面,\n指newline,光标会前进到下一行,但位置不一定是最前面,而是上一行光标所在的那个位置,对于以前的打印机,如果想从新一行开头重新打印,就需要这两个一起使用 现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用
谢谢,thefirstz。光标不一定在最前面,那在哪里?没有一个固定的位置吗?如何验证这一点呢?[/quote] 比如上一行的光标在第40个字符处,\n会让光标还在下一行的第40字符处,不会回到第一个字符即行开始的地方[/quote] 我试验了一下,好像光标还是去到了下一行的行首。
#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;
}
[/quote] 现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用
回复 点赞
max_min_ 2014年01月01日
\r 本行的行首! \n 换行!
回复 点赞
mcmay 2014年01月01日
引用 4 楼 thefirstz 的回复:
[quote=引用 3 楼 mcmay 的回复:] [quote=引用 1 楼 thefirstz 的回复:] \r指return,光标会回到该行的最前面,\n指newline,光标会前进到下一行,但位置不一定是最前面,而是上一行光标所在的那个位置,对于以前的打印机,如果想从新一行开头重新打印,就需要这两个一起使用 现在不同的操作系统对两者的处理不同,有的只需要\n,有的需要两者合用
谢谢,thefirstz。光标不一定在最前面,那在哪里?没有一个固定的位置吗?如何验证这一点呢?[/quote] 比如上一行的光标在第40个字符处,\n会让光标还在下一行的第40字符处,不会回到第一个字符即行开始的地方[/quote] 我试验了一下,好像光标还是去到了下一行的行首。
#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;
}
回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告