如何强制流根据类型写入数字数据
How to force stream to write numeric data according to type
我使用wofstream
合并文件,还编写wstring和整数(直接从内存中)。我(目前)的问题是,假设我有一个int32
,它包含数字7
。在内存中,它需要4个字节,但当我将它写入流,并使用十六进制查看器进行检查时,我只看到了这个——7
(单字节)。
当然,这对我来说没有用,因为我必须阅读它,并可靠地阅读它。
那么,如何使流根据类型写入数据——所以2字节类型将占用2字节,4字节——4字节,依此类推?
记录我的合并功能:
for (const std::wstring &fn : files)
{
std::wifstream is_src(dst_dir+fn, std::ios_base::binary);
os_dest << is_src.rdbuf();
os_dest << fn;
os_dest << static_cast<__int32>(fn.size());
}
os_dest << static_cast<__int32>(files.size());
我添加了强制转换,以100%确定有4个字节,而没有其他字节。
在这里找到答案:将整数写入二进制文件(C++)
关键不是使用流运算符,而是使用方法write
。
相关文章:
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 使用 std::locale 格式化法语数字时无效的 UTF-8 数据
- 用于筛子的最佳数据结构是什么(即一些被划掉的数字列表)?
- 尝试使用 ifstream 读取数据后显示不正确的数字
- C++,打开和编辑文本文件中的数字数据,并将结果放入新文件中
- 从文件中读取带有空格和数字数据的文本
- 创建一个带有限制的数字数据类型,一个介于 -10 和 10 之间的整数
- 将映射的每个键中的数字数据与另一个数值进行比较
- 为具有一个数字数据成员的类定义所有比较运算符的方便方法
- (c++)从txt文件中读取列中的数字数据并确定最高值
- 如何在不使用 atof 函数的情况下将命令行添加为数字数据
- 如何解析来自 EDID 的数字数据
- 从C++文件中读取不同类型的数字数据
- 如何强制流根据类型写入数字数据
- 为什么我将数字数据从文本文件导入二维数组的代码不起作用
- 用C++读取表格中的数字数据,代码行数最少
- C++中的数字数据验证
- 如何将数字数据序列化为char*
- 将数字数据以二进制形式写入文件,而不是写出
- 通过TCP/IP以太网发送数字数据