用C语言修改bin文件里面的数据
要判断出 出连续两个字节05 01 的这种组合
然后把这这种组合中的05改成 01
逻辑很简单
但是文件我用文件指针判断出了这种情况,怎么把将它写入bin文件呢
c语言
指针
分享到:
------解决方案--------------------
仅供参考#include
#include
#include
#include
#define MAXN 40
#define MAX2N 80
FILE *fi,*fo;
char sn[_MAX_PATH],dn[_MAX_PATH],f[MAX2N],bw[MAXN],bf[MAXN+sizeof(int)-1],bx[MAXN],br[MAXN+sizeof(int)-1],bb[MAXN];
char *ag[MAXN];
int L,i,j,k,lenf,lenr,find,match;
__int64 off;
void FR() {
printf("\n");
printf("Src : %s\n",sn);
if (find==0) {
printf("Dest: %s\n",dn);
}
for (i=0;i
bb[i]=fgetc(fi);
}
off=0i64;
while (1) {
match=1;
for (j=0;j
if (bw[j]==0&&bf[j]==bb[j]) continue;
if (bw[j]==1) continue;
match=0;
break;//
}
if (match==1) {
printf("%016I64X\n",off);
if (find==0) {
for (j=0;j
if (bx[j]==0) fputc(br[j],fo);
else fputc(bb[j],fo);
}
}
for (i=0;i
bb[i]=fgetc(fi);
if (feof(fi)) break;//
}
if (feof(fi)&&find==0) {
for (j=0;j
break;//
}
if (feof(fi)) break;//
else off+=(__int64)lenf;
} else {
if (find==0) {
fputc(bb[0],fo);
}
memmove(bb,bb+1,lenf-1);
bb[lenf-1]=fgetc(fi);
off++;
if (feof(fi)) {
if (find==0) {
for (j=0;j
}
break;//
}
}
}
}
int main() {
while (1) {
printf("Find & Replace, designed by zhao4zhong1@163.com\n");