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] 举报,一经查实,本站将立刻删除。