假如我定义了一个结构体..
struct xxx
{
char a[20];
char b[20];
} boy[100]
而且在它输入的数据存在某一个TXT文件里面(例如输入2组 mmmm nnnnnn和QQQQQ PPPPPP)
我现在想修改QQQQQ…为HHHHHH
请问怎样才能找到第2组QQQQQ..然后输入HHHHHH覆盖了它!
我做到fread(………………….)就停下来了..也就是说,我只做到打开和读文件..
请高手指点一下,小弟新手哦..
>> 本文固定链接: http://www.vcgood.com/archives/2664
>> 转载请注明: sunnyhuang2008 2008年08月27日 于 C语言帝国 发表
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 );
学习