关于读文件的一个问题

问题遇到的现象和发生背景

这是代码的一小部分,我想要将读完第一次后声明一个变量将第一次存起来 然后再判断条件再跳到第二次的位置,请问我这样声明变量将代码改成
这样行吗如果不行应该改成什么样子呢

size_t count = fread(&usb, 12, 1, fpRead);//读第一次
        if (count == 0)
        {
            break; // 到达文件末尾,退出循环
        }
        int usb1=fread(&usb, 12, 1, fpRead)
        if (0xF0 == usb.datasend && 0xA9 == usb.session)//判断条件
        {
            fseek(fpRead, usb.PayloadLength, SEEK_CUR);//跳到第二次开头的的位置
            fread(&usb, sizeof(USBHEADER),1, fpRead);  //读第二次

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
       size_t count = fread(&usb, 12, 1, fpRead);//读第一次
        if (count == 0)
        {
            break; // 到达文件末尾,退出循环
        }
        if (0xF0 == usb.datasend && 0xA9 == usb.session)//判断条件
        {
            fseek(fpRead, usb.PayloadLength, SEEK_CUR);//跳到第二次开头的的位置
            fread(&usb, sizeof(USBHEADER),1, fpRead);  //读第二次

运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

好像是可以的,你把第一次读取到的数据记录下来的过程移除了,而实际上它不需要保存,只需要读取一次后判断条件即可,但是你的1行和6行用的是fread(&usb, 12, 1, fpRead);而10行又成了fread(&usb, sizeof(USBHEADER),1, fpRead);我建议在读第一次时,把读的字节数改为

fread(&usb, sizeof(USBHEADER),1, fpRead);

以读取正确的数据长度。
第六行也是。

啥意思,请描述清楚一点

代码存在一些问题。在第一次读文件之后,应该将变量 count 设置为再次读文件返回的值,而不是再次读文件:

size_t count = fread(&usb, 12, 1, fpRead);//读第一次
if (count == 0)
{
    break; // 到达文件末尾,退出循环
}
count = fread(&usb, 12, 1, fpRead);
if (0xF0 == usb.datasend && 0xA9 == usb.session)//判断条件
{
    fseek(fpRead, usb.PayloadLength, SEEK_CUR);//跳到第二次开头的的位置
    fread(&usb, sizeof(USBHEADER),1, fpRead);  //读第二次
}

如果你希望在判断条件后再读第二次,可以把第二次的读入放在条件判断后面。

代码如下:

size_t count = fread(&usb, sizeof(USBHEADER), 1, fpRead);
if (count == 0)
{
break; // 到达文件末尾,退出循环
}
if (0xF0 == usb.datasend && 0xA9 == usb.session)
{
fseek(fpRead, usb.PayloadLength, SEEK_CUR);
count = fread(&usb, sizeof(USBHEADER), 1, fpRead);
}

另外您第一段代碼int usb1=fread(&usb, 12, 1, fpRead) 缺少分号

应该写成 int usb1=fread(&usb, 12, 1, fpRead);

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^