求C++修改文件的函数代码
文件内容大概是XXSDFLDFGKWELKSDLK等很多字节数据(不是字符) 函数参数(文件路径,标记字符串,新字符串) 实现效果:把指定文件中标记字符串的前三位替换成新字符串(新字符串长度不一定是三位)
补充:这个问题的核心是修改二进制字节码,不是字符串处理
文件内容大概是XXSDFLDFGKWELKSDLK等很多字节数据(不是字符) 函数参数(文件路径,标记字符串,新字符串) 实现效果:把指定文件中标记字符串的前三位替换成新字符串(新字符串长度不一定是三位)
补充:这个问题的核心是修改二进制字节码,不是字符串处理
答案:int filechange(char *filename,char *chr,char *chr1)
{
FILE *in;
unsigne char *buffer;
if ((in = fopen(filename, "r+"))
== NULL)
{
fprintf(stderr, "Cannot open input file.\n");
return 1;
}
int filelength=fseek(in,0,SEEK_END);
buffer=new char(filelength);
if(buffer==NULL)
{
fprintf(stderr, "分配空间错!");
return 1;
}
fseek(in,0,SEEK_SET);
fread(buffer,sizeof(unsigned char),filelength,in);
for(int i=0;i<filelength;i++)
{
if(buffer[i]=chr[i] && buffer[i+1]=chr[i+1] && buffer[i+2]=chr[i+2])
{
buffer[i]=chr1[i];
buffer[i+1]=chr1[i+1];
buffer[i+2]=chr1[i+2];
i+=2;
}
}
fseek(in,0,SEEK_SET);
fwrite(buffer,sizeof(unsigned char),filelength,in);
fclose(in);
delete buffer;
return 0;
}
其他:百度 "C++ 文件操作"
上一个:C语言问题!!!!!!!
下一个:求C语言高手帮忙做课程设计,题目如下,只用数组和函数编程,也可用循环语句,就是不要用结构体和指针,急