C fseek错误

C fseek错误,c,C,使用以下代码,我尝试从文件中读取4个字节: FILE *f uint32_t read_program(int A) { long i; uint32_t strofprog; uint8_t tmp; i = 4*A; fseek(f,i,0);// set a position in file if((tmp = getc(f)) != EOF) { while((i%(4*A)) < 4) {

使用以下代码,我尝试从文件中读取4个字节:

FILE *f

uint32_t read_program(int A)
{
    long i;
    uint32_t strofprog;
    uint8_t tmp;
    i = 4*A;
    fseek(f,i,0);// set a position in file
    if((tmp = getc(f)) != EOF)
    {
        while((i%(4*A)) < 4)
        {
            fseek(f, i, SEEK_SET);
            tmp = getc(f);
            strofprog = tmp;
            strofprog <<= 8;
            i++;
        }
        return strofprog;
    }
    else
    { 
        fclose(f);
        return -1; 
    };
}
我做错了什么,如何修复它?

粘贴中的第85行:

fseek(*f,i,0);// set a position in file

正如@unwind所怀疑的那样。

这是真正的代码吗?检查
f
的声明。是。f的声明为FILE*f;然后f=fopen(“file.bin”,“r”)
if((tmp=getc(f))!=EOF)
仅当
tmp
声明为
int
时才正确!此外,内部循环不会检查
tmp
是否为
EOF
是否在哪里?可以直接剪切并粘贴文件吗?请检查您没有在其中一个
fseek()
调用中键入
*f
fseek(*f,i,0);// set a position in file