gpt4 book ai didi

c++ - 以 Null 结尾的字符串的 "NULL"或 "\0"符号是否存储在文件中?

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:12 25 4
gpt4 key购买 nike

如果我想将一个以 Null 结尾的字符串存储到一个文件中,并且该文件将只包含该字符串,那么“\0”或“NULL”字符是否存储在文件中(在“EOF”之前(End文件)-标志)?

此外:结果是否取决于操作系统等编译器,我将在其上编译源代码?

最佳答案

您可能能够将空字符写入文本文件,但您几乎肯定不想这样做。

字符串(定义为“由第一个空字符终止并包括第一个空字符的连续字符序列”)是一种内存数据格式。

文本流由一系列组成:

A text stream is an ordered sequence of characters composed into lines, each line consisting of zero or more characters plus a terminating new-line character. Whether the last line requires a terminating new-line character is implementation-defined.

一个字符串可能包含也可能不包含单行文本。如果它表示一行文本,它可能包含也可能不包含终止换行符 '\n'(您需要自己跟踪)。

如果内存中有一系列字符串,将它们写入文本文件的常用方法是将每个字符串的内容写入文件,不包括终止空字符,如有必要,添加换行符。 fprintffputs 等函数假定它们的参数是 strings,因此它们会注意省略 '\0' .

可以将空字符写入文本流,但实际写入文件的内容由实现定义。您可以将空字符或任何字节值写入二进制流——但是您不能安全地使用字符串函数(strlen() 等,甚至 fgets() fputs()) 写入流或从流读取的数据。 (在实践中,大多数系统允许将空字符写入文本文件和从文本文件读取空字符——尽管许多标准库函数假定文本文件只包含可打印字符。)

关于c++ - 以 Null 结尾的字符串的 "NULL"或 "\0"符号是否存储在文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58157035/

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