C语言读物文件并写入结构体,最后保存文件如何实现?

struct card //这是结构体
{
__int64 cardid;
long int pwd;
char name;
char id;
double money;
}card[1000];
int counts;
请问下各位如何实现在程序运行的时候读取文件中card.dat中的数据,并赋值给结构体card[i],并且统计文件中实际存在的card[i].cardid的数量,在程序退出的时候进行保存,把数据存到card.dat中。并且再下次运行的时候可以读取card.dat中数据不会出现问题的,100分急求,小弟编程新手,帮忙啊~~谢谢

读物文件并写入结构体,同时保存文件的代码如下:
FILE* fp = fopen("card.dat", "wb");
//写
for(int i = 0; i < counts; i++)
{
fwrite(&card[i], sizeof(struct card), 1, fp);
}
fclose(fp);

//读
FILE* fp = fopen("card.dat", "rb");
int index = 0;
while(!feof(fp))
{
fread(&card[index++], sizeof(struct card), 1, fp);
if(index >= 1000)
break;
}
fclose(fp);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-18
#include
struct
{
char str[10];
}a[3];
int main()
{
file *fp=fopen("log","r");
int i,t;
if(fp==null)return 1;
for(i=0;i<3;i++)
{
fscanf(fp,"id.%d string:%s\n",&t,a[i].str); //读到结构体存储
printf("id.%d string:%s\n",i+1,a[i].str); //输出
}
fclose(fp);
return 0;
}
第2个回答  2009-06-08
FILE* fp = fopen("card.dat", "wb");
//写
for(int i = 0; i < counts; i++)
{
fwrite(&card[i], sizeof(struct card), 1, fp);
}
fclose(fp);

//读
FILE* fp = fopen("card.dat", "rb");
int index = 0;
while(!feof(fp))
{
fread(&card[index++], sizeof(struct card), 1, fp);
if(index >= 1000)
break;
}
fclose(fp);本回答被提问者采纳
相似回答