vc++中,我想把一个文件中的某几个字节更新成新的内容,因为只修改少数量的字节,所以我不想另外创建一个文件,而删除原文件!请问如何实现???

解决方案 »

  1.   

    #include "stdio.h"
    #include "stdlib.h"....
    FILE *fp;
    fp=fopen("yourfile","r+b");
    fseek(fp,100L,SEEK_SET);
    fputc('A',fp);
    fclose(fp);
    以上程序用于将yourfile的第100个字节改为'A'
      

  2.   

    头上的哥们,可能我没有说清楚!我只想替换第100字节的内容,而不是插入
    新的字节内容!可以研究一下!
    函数fputc(char,*fp)写的字节好像只是插到了第100个字节上,而原来第100字节及其以后的内容自动后移不变。另外,fopen的打开模式应该为写吧!不知道是否正确,请多多指教!谢谢!
      

  3.   

    先用fseek找到的位置,然后用fwrite写入字符串,就可以。不信试一试。
      

  4.   

    vc小虫哥,那样好象只是往文件中多插入了东西,原来的只是后移了!akiy(宏)哥,要是直接处理怎么做啊?各位哥哥,多多帮忙!
      

  5.   

    他们说的都是对的。写文件的函数会自动覆盖掉原来的内容,而不是像你所说的“插入”——真要实现插入,反而会更麻烦。另外,zyoujie()说的“r+”是对的,如果用“w”,则原来文件的内容会被破坏。千万不要想当然,自己动手写一段程序试一试就知道了。