首页 > 用户发贴区 > 编程问题提问区 > 请教修改文件内容
2008
08-27

假如我定义了一个结构体..


struct xxx


{


          char  a[20];


           char    b[20];


}   boy[100]


 


而且在它输入的数据存在某一个TXT文件里面(例如输入2组 mmmm  nnnnnn和QQQQQ PPPPPP)


我现在想修改QQQQQ…为HHHHHH


请问怎样才能找到第2组QQQQQ..然后输入HHHHHH覆盖了它!


我做到fread(………………….)就停下来了..也就是说,我只做到打开和读文件..


请高手指点一下,小弟新手哦..


请教修改文件内容》有 2 条评论

  1. xstar 说:

    typedef struct _BOY {
        char a[ 20 ];
        char b[ 20 ];
    } BOY;

    BOY boys[ 100 ];
    BOY boy;

    方法一是把所有数据读入到内存,然后修改第二组数据!写!
    // 打开
    fp = fopen( filename );
    // 读入
    fread( (void *)&boys[ 0 ], sizeof( BOY ), 100, fp);
    // 更新
    strcpy( boys[ 1 ].a, “HHHHHHH” );
    // 定位读写指针
    fseek( fp, 0, SEEK_SET )
    // 写
    fwrite( (void *)&boys[ 0 ], sizeof( BOY ), 100, fp );

    方法二,读写需要更改的数据
    // 打开
    fp = fopen( filename );
    // 定位读写指针
    fseek( fp, sizeof( BOY) * 1, SEEK_SET )
    // 读入
    fread( (void *)&boy, sizeof( BOY ), 1, fp);
    // 更新
    strcpy( boy.a, “HHHHHHH” );
    // 定位读写指针
    fseek( fp, sizeof( BOY) * 1, SEEK_SET )
    // 写
    fwrite( (void *)&boy, sizeof( BOY ), 1, fp );

留下一个回复