打印部分二进制序列c++
Printing part of binary sequence c++
我已经从二进制文件读取到一些结构指针。在我的结构中,有几个unsigned int
整数。这是我的结构体:
编辑
typedef unsigned int INT32U;
typedef struct {
INT32U var1 : 16;
INT32U var2 : 8;
INT32U var3 : 1;
} myStruct;
typedef struct{
myStruct hdr;
INT32U additionalVar;
}MyStructSecond;
和我读取二进制文件以下行:
myStructSecond * pack;
FILE * stream = fopen(argv[1],"rb");
fread((INT32U*)pack->hdr,1,sizeof(myStruct),stream);
现在我想访问var1的值,但我不知道我如何做到这一点?
有人来帮我吗?
这将是一个可怕的错误-您创建了一个指针,但没有实际的结构体。
你想:
myStruct pack;
FILE * stream = fopen(argv[1],"rb");
ReadFile(stream, &pack, sizeof(pack));
然后您可以访问这些值,例如pack.var1
我有一种感觉,这个问题是由于在调用ReadFile
时使用了一个没有正确初始化的指针引起的。
我建议
myStruct pack;
FILE * stream = fopen(argv[1],"rb");
ReadFile(stream, &pack, sizeof(myStruct));
更新回应OP.
评论myStructSecond pack;
FILE * stream = fopen(argv[1],"rb");
fread(stream, &pack.hdr, sizeof(myStruct));
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 有根的二进制搜索树.保留与其父级的链接
- 多态二进制函数
- 正在读取二进制文件(is_open)
- visual在c++中将十进制数转换为二进制数
- C++十进制到二进制,如何转换
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 二进制搜索树叶数问题
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为什么二进制搜索在我的测试中不起作用
- 重载==不适用于二进制树
- 正在尝试重载二进制搜索树分配运算符
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 带有数组键C++的二进制映射
- 如何将二进制格式的 C++ 对象的 std::vector 保存到磁盘?
- 二进制数之和(使用C样式字符串)
- 如何从dicom文件中读取二进制数据
- 基于编译器选项的编译二进制路径