用C语言写一个程序,读取一个二进制文件,找出其中连续四个字节十六进制形式为00 00 00 01的个数。

如题所述

第1个回答  2013-03-25
#include <stdio.h>
int main() {
FILE *infile;
char filename[] = ""; // ""中填入文件名(含路径)
int cnt = 0,sum = 0,num;
infile = fopen(filename,"rb");
if(infile == NULL ) {
printf("打开文件%s出错。\n");
return 1;
}
while(!feof(infile)) {
fread(&num,sizeof(int),1,infile);
if(num == 1) ++cnt;
if(cnt == 4) { ++sum; cnt = 0; }
}
fclose(infile);
printf("sum = %d\n",sum);
return 0;
}追问

不行啊,有个文件我用UE打开,里面有好多00 00 00 01,用你的代码输出是0。

追答

把if(num == 1)改为if(num == 0X1000)再试试!

本回答被提问者采纳
相似回答