c++ - 打印二进制序列的一部分 C++

标签 c++ struct io binaryfiles

<分区>

我已经从一个二进制文件中读入了一些结构指针。在我的结构中,有几个 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.

关于c++ - 打印二进制序列的一部分 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24250571/

相关文章:

c++ - 创建一个包含类的堆栈

c++ - 继承与多态打印函数

c++ - 在原始图像和转换后的图像之间进行插值

C程序——链表中的链表

python - Python 解释的 C++ 字节数组(结构)

c++ - 使用唯一指针 C++ 反转字符串

c - 分配给不兼容的指针类型双指针

c# - 确定文件移动的目标是否在 C# 中的同一文件系统上

java - 两个与Java类似的复制代码,两种行为

java - Thread.yield 和 Java 中的非阻塞 IO 一样吗