r和n有什么不同?我认为这与Unix、Windows和Mac有关,但我不确定它们到底有什么不同,以及在正则表达式中搜索/匹配哪个。


当前回答

\r是用来指向一行的开始,可以替换从那里开始的文本。

main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
}

产生如下输出:

hai

\n是新线。

其他回答

在c#中,我发现他们在字符串中使用\r\n。

\r是用来指向一行的开始,可以替换从那里开始的文本。

main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
}

产生如下输出:

hai

\n是新线。

\r是回车;\n是换行(换行)…这取决于操作系统。阅读这篇文章,了解更多关于“\n”和“\r\n”的区别…在C。

除了@Jon Skeet的回答:

传统的Windows使用\r\n, Unix \n和Mac \r,但是新的Mac使用\n,因为它们是基于Unix的。

简而言之,\r的ASCII值为13 (CR), \n的ASCII值为10 (LF)。 Mac使用CR作为行分隔符(至少,它以前是这样做的,我不确定现代Mac), *nix使用LF, Windows同时使用(CRLF)。