C++:在文本文件中存储char数组时,是否存储Null
C++: Does the Null get stored when storing a char array in a textfile?
看看这个代码
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字节,那将是一种非常令人讨厌的失控。然后,只写你想要的字符会有点麻烦。
相关文章:
- 使用无符号字符数组有效存储内存
- 如何在cpp.中使用协议缓冲区存储大缓冲区/数组(char/int)
- 在c++中获取两个大int,并将它们存储在数组中
- 使用 Xcode 将双精度存储在数组C++中
- 访问表示 2D 矩阵的 1D 存储数组
- 从输入文件读取整数,仅存储数组C 中的唯一整数
- 如何在队列中存储数组
- 按列主要顺序迭代行大量存储数组
- 如何使存储数组的二进制搜索稳定
- 将行中的字段从textfile中更改为存储数组,而不是重新编写文件
- 存储数组索引值C++
- 存储数组的地方,如果我在返回后声明它
- 缺少存储数组地址的内存
- 使用static在函数中存储数组各个组件的值
- 如何存储数组的每个相邻子数组的和
- 在c++中存储数组映射
- 存储数组的地址列表,以解析原始的非终止文本
- 用于存储数组的字符串
- c++存储数组下一个位置的地址
- 在 for 循环中创建和存储数组