现有一个二进制文件,需要对其进行处理。要求每2048字节增加64字节0xff数据,末尾不足2048字节的部分要求以0xff补齐到2048字节再作处理,请用C语言实现此功能,以传命令形式指定输入文件和输出文件。
//现有一个二进制文件,需要对其进行处理。
//要求每2048字节增加64字节0xff数据,末尾不足2048字节的部分要求以0xff补齐到2048字节再作处理,
//请用C语言实现此功能,以传命令形式指定输入文件和输出文件。
#pragma warning(disable:4996) //开头加这句或项目、属性、配置属性、C/C++、预处理器、预处理器定义中添加“_CRT_SECURE_NO_WARNINGS”
#include <stdio.h>
#include <string.h>
#include <conio.h>
FILE *fi,*fo;
long i;
int c,j;
int main(int argc,char **argv) {
if (argc<3) {
printf("Usage:%s src des\n",argv[0]);
return 1;
}
if (0==stricmp(argv[1],argv[2])) {
printf("Src and des is same!\n");
return 2;
}
fo=fopen(argv[2],"wb");
if (NULL==fo) {
printf("Can not create file %s\n",argv[2]);
return 3;
}
fi=fopen(argv[1],"rb");
if (NULL==fi) {
fclose(fo);
printf("Can not find file %s\n",argv[1]);
return 4;
}
i=0;
while (1) {
c=fgetc(fi);
if (EOF==c) break;
fputc(c,fo);
i++;
if (i>=2048) {//每2048字节
for (j=0;j<64;j++) fputc(0xff,fo);//增加64字节0xff数据
i=0;
}
}
if (0<i) {//末尾不足2048字节
for (j=0;j<2048-i;j++) fputc(0xff,fo);//以0xff补齐到2048字节
for (j=0;j<64;j++) fputc(0xff,fo);//再作处理
}
fclose(fi);
fclose(fo);
return 0;
}