C fseek错误
使用以下代码,我尝试从文件中读取4个字节: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) {
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