C++:在文本文件中存储char数组时,是否存储Null

C++: Does the Null get stored when storing a char array in a textfile?

本文关键字:存储 数组 是否 Null char C++ 文本 文件      更新时间:2023-10-16

看看这个代码

ofstream obj("output.txt");
obj<<"Hello World";

这里我发送到文本文件"output.txt"字符数组"Hello World"

现在,char数组的末尾有一个终止null。

因此,当我将char数组发送到文本文件"output.txt"时,终止的null是否也会被发送和存储,为什么?

考虑一下如果多次写入文件会发生什么:

ofstream output("myfile.txt");
output << "Hello";
output << " ";
output << "world";

如果每次向文件写入内容时都添加了字符串终止符,那么当您第二次写入时,系统必须在文件中找到零,将其删除,然后在新文本之后再次添加。此外,该系统必须以不同的方式实现,以便输出到例如控制台。

因此,回答你的问题:不,终结者不是书面的。它只被内存中的字符串用于函数,以知道字符串在内存中的结束位置。

否。空终止正是C/C++用来知道字符串在哪里结束的。

请注意,如果让它在您真正想要的字符之后写入0x00字节,那将是一种非常令人讨厌的失控。然后,只写你想要的字符会有点麻烦。