看看这段代码
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 字节将是一个非常烦人的失控。然后,只写你想要的字符会有点麻烦。