回复 20楼 ccc菜鸟,
乱写了一段如何将结构体数组一次性写入文件,并读出来的代码。程序不长,自己思考怎么改你自己的代码。等老T晚上开课详解,俺是来拉二胡的
#include <stdio.h>
#include <string.h>
struct foo{
int id;
char name[40];
float score;
};
void init_foo(int, const char *, float, struct foo*);//初始化结构体元素
int main()
{
struct foo f1[2], f2[2];
init_foo(1,"test1", 10.5f, &f1[0]);
init_foo(2,"test2", 20.5f, &f1[1]);
char *filename = "test.txt";
FILE *fp;
fp = fopen(filename, "w");
if(fp != NULL)
{
fwrite(&f1, sizeof(struct foo), 2, fp); //写入数据块
}
fclose(fp);
fp = fopen(filename, "r");
if(fp != NULL)
{
fread(&f2, sizeof(struct foo), 2, fp); //读出数据块
printf("%d, %s, %.2f\n", f2[0].id,f2[0].name,f2[0].score); //输出内容
printf("%d, %s, %.2f\n", f2[1].id,f2[1].name,f2[1].score);
}
fclose(fp);
return 0;
}
void init_foo(int a,const char *b, float c, struct foo* d)
{
d->id = a;
strcpy(d->name, b); //strcpy函数并不安全
d->score = c;
}
[此贴子已经被作者于2015-11-26 15:16编辑过]
我们都在路上。。。。。