当前位置:编程学习 > C/C++ >>

求C++修改文件的函数代码

文件内容大概是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语言高手帮忙做课程设计,题目如下,只用数组和函数编程,也可用循环语句,就是不要用结构体和指针,急

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,