1

这个问题是关于 C、C++ 和 Java 中的 '\n' 的。对于每种语言,'\n' 字符是依赖于平台的(Unix 上的 LF CRLF 在 Windows 上)还是只是 LF 而与平台无关

4

1 回答 1

6

在 C 和 C++\n换行符是应用程序内部字符串中使用的换行符。当以文本模式(即非二进制模式)打开时,IO 流将转换为特定于平台的换行符序列。

请注意,这对于标准库是正确的,但可能不适用于特定的 API - 例如,我记得某些 Windows 控件需要显式 CRLF 才能正常工作。

至于Java,我可能是错的(我几乎从未使用过Java),但从我从文档中可以看出,流不执行任何翻译;相反,您可以使用System.lineSeparator()来获取当前平台的行分隔符。使用此信息,BufferedWriter提供了一种方便的newLine方法来将换行符输出到底层流。

于 2012-10-09T16:09:32.780 回答