它们都意味着“新线”但是什么时候用于另一个?
答案 0 :(得分:28)
\r\n
是 Windows 样式
\n
是 POSIX 样式
\r
是使用 POSIX 风格的 pre-OS X Macs 样式,现代Mac 。
\r
是一个carrige返回,\n
是换行符,在旧计算机中没有监视器,只有打印机将程序结果输出给用户,如果您想从左侧开始从新线开始打印,则必须获取换行的\n
,并获取回车的\r
最左边的位置,这是从 Windows 平台上保存到旧计算机语法。
答案 1 :(得分:3)
\ n只是换行符,\ r \ n是换行符和回车符(即将光标向左移动)。
答案 2 :(得分:3)
\ n表示换行。这意味着光标必须转到下一行。
\ r \ n表示回车。这意味着光标应该返回到行的开头。
Unix和Unix程序通常只需要一个新行(\ n)。
Windows和Windows程序通常都需要两者。
答案 3 :(得分:1)
'\ n'是Unix中的默认值,'\ r \ n'是Windows中的默认值。
答案 4 :(得分:1)
不同的操作系统以不同的方式处理换行符。以下是最常见的简短列表: DOS和Windows
他们希望换行符是两个字符的组合,即'\ r \ n'(或13后跟10)。
Unix(以及Linux也是如此)
Unix使用单个'\ n'来表示新行。
的Mac
Mac使用单个'\ r'。
因此,当您使用文件夹路径等时,将应用程序从Windows移植到Mac时会导致问题。
答案 5 :(得分:1)
这是操作系统Windows(\ r \ n)和linux(\ n)
中新行的表示方式在Unix上,\ r \ n是回车符(CR)和 \ n换行符(LF)一起恰好是Windows换行符 标识符,您将使用Unix换行标识符替换它们。
在Windows上,\ r \ n也是CR,但是\ n是CR和LF的组合。所以 实际上,你试图用CR + LF取代CR + CR + LF。做得不多 是的,是吧。
来自“perldoc perlop”: 所有系统都使用虚拟“”\ n“”来表示行终止符, 称为“换行符”。没有不变的,物质的东西 换行符。操作系统只是一种幻觉, 设备驱动程序,C库和Perl都密谋保留。不是全部 系统读取“”\ r“”作为ASCII CR和“”\ n“”作为ASCII LF。例如,开启 一台Mac,这些都是相反的,并且在没有线路终结器的系统上, 打印“”\ n“”可能不会发出实际数据。一般情况下,使用“”\ n“” 表示系统的“换行符”,但在您使用时使用文字ASCII 需要一个确切的角色。例如,大多数网络协议都希望如此 并且更喜欢CR + LF(“”\ 015 \ 012“”或“”\ cM \ cJ“”)用于行终止符, 虽然他们经常只接受“”\“”,但他们很少容忍 “” \ 015 “”。如果你习惯使用“”\ n“”来建立网络,那么你 有一天可能会被烧掉。
答案 6 :(得分:0)
区别在于不同的操作系统,在Windows上,换行符是\r\n
,而在Linux上它只是\n
Mac OSX只有\r
它真的只是一个问题操作系统的设计者使它成为
答案 7 :(得分:0)
在C#中,您可以使用Environment.NewLine