java - C/C++ 和 Java 中的字符\n 是否被认为是 LF 或平台相关的?

标签 java c++ c newline

这个问题是关于 C、C++ 和 Java 中的 '\n' 的。对于每种语言,'\n' 字符平台相关(在 unix 上为 LF 在 windows 上为 CRLF)或者它只是 LF 而不管平台如何

最佳答案

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

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

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

关于java - C/C++ 和 Java 中的字符\n 是否被认为是 LF 或平台相关的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12804047/

相关文章:

java - 使用 Java 源代码从 MS Excel 导入数据

java - 从域对象中访问 Spring 单例的好方法?

c++ - JAutodoc 类 C++ 插件

c - 多次执行fork会带来什么风险?

rep_movsl 的 Clobber 列表

java - 如何从 SQLite 随机设置文本到按钮而不重复?

Java Intstream 获取具有空值的多维数组的索引

c++ - 资源管理器在 TILE View 模式下不显示 shell 命名空间扩展的项目详细信息

c++ - 为什么转换构造函数在这里被调用

c - 编辑 TCP 负载时 Netfilter 崩溃