C/C++和Java中的字符是否被认为是LF或平台依赖的?

sha*_*awn 1 c c++ java newline

这个问题与C,C++和Java中的'\n'有关.对于每种相应的语言,是'\n'字符平台依赖(Windows上的unix CRLF上的LF)或者它只是LF而不管平台

Mat*_*lia 6

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

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

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