微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么“\ n”在Windows上换行?

Windows上的换行标记应该是CR+LF而在Unix上,它只是LF 。

所以当我使用像Console.Write("line1nline2"); 为什么它会“正常”地工作,给我两条线? 我希望这个n不能工作,只有rn的组合才能工作。

Linux上Data Protection API的等价物

使用BluetoothLEDevice.FromIdAsync连接到蓝牙设备会导致错误

在winXP https请求错误

是否有Windows错误报告的.Net API

如何判断Windows何时处于非活动状态

' n'是换行符。 传统上,它导致打印机将纸张卷起一行。 “ r”是回车符,传统上它会导致打印头移动到纸张的最左边。

在以这种方式解释字符的打印机和控制台上, line1nline2的输出

line1 line2

许多控制台(和编辑器)会将“ n”解释为表示要开始一个新行,并将光标定位在新行的开头。 这就是你在这里看到的。

你应该使用Environment.NewLine而不是硬编码任何特定的常量。

这只是底层Windows控制台的标准行为。 如果你输出0x0A到控制台,本地C应用程序将完全相同。

当然,你应该使用Environment.NewLine作为你的新行。 Environment.NewLine在Windows上解析为rn n在Unix上解析为rn n ,就像系统一样。

文件编码!= Console解释。

换句话说,虽然CR + LF的“Windows标准”存在于文件中,但只有LF或n在控制台窗口中产生了适当的回车和新行解释。

n是换行符。 在* nix和Windows系统上,它应该创建2行。 r是回车符,它将书写工具移动到行首。

大多数现代游戏机/编辑器都足够有弹性来将 n解释为 r n

根据我的经验,当用WriteLine()输出到控制台时,它接受 n转义字符。 当您使用StreamWriter并调用WriteLine()时,它会让您输入 r n来移动到新行。 我假定控制台已经被编程为接受 n转义字符,而没有回车 r。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐