gpt4 book ai didi

java - c和java语言中的换行符

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:57 26 4
gpt4 key购买 nike

现在行分隔符是系统相关的,但是在 c 程序中我使用 '\n' 作为行分隔符,无论我在 windows 还是 linux 中运行它都可以正常工作。为什么 ??

在 java 中,我们必须使用 %n,因为它依赖于系统,那么我们为什么在 c 中使用 '\n' 来换行,而不管我们运行它的操作系统如何?

最佳答案

这是C99 standard不得不说:

5.2.2 Character display semantics
[...]
2. Alphabetic escape sequences representing nongraphic characters in the execution
character set are intended to produce actions on display devices as follows:
[...]
\n (new line) Moves the active position to the initial position of the next line.

这意味着如果您打印“\n”,则必须在 Windows 上将其更改为“\r\n”才能满足此要求。但这仅针对显示 设备以这种方式定义,不适用于文件。没有关于如何在 text-file 中表示此(或任何其他空白)字符的规范,但是:

5.2.2 Character display semantics
[...]
3. Each of these escape sequences shall produce a unique implementation-defined value
which can be stored in a single char object. The external representations in a text file
need not be identical to the internal representations, and are outside the scope of this
International Standard.

所以您的问题的直接答案是 - 它按您预期的那样工作,因为 C 标准没有说明 \n 字符的二进制表示,当它被打印到显示设备或存储在文本文件。但是,它确实精确地指定了它在打印时的行为方式 - 它应该移动到下一行的开头

关于java - c和java语言中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com