本人思路:
将结构体3个结构体用typedef将3个结构体分别定义成3个类型
login_node, p2log_innode;
basic_info_node, p2baisc_info_node;
score_info_node, p2score_info_node;
写入到一个文件中,用3个fwrite分别写入。
因为写入的文件的是二进制数,所以只能用fread读取。
但是读取时用3个fread,结构体之间会有干扰吧?
我现在想,是不是我的思路错了。
我是不是可以考虑将3个结构体合并到一个结构体中?
还是将3个结构体分别写入到3个文件中?
本人最希望的还是将3个结构体写入到一个文件中,然后分别读出,但是想到应该会有干扰,现在没有思路了!
可以不可以用一个fwrite同时将3个结构体同时写入到文件中?然后再用一个fread再读出来?如果可以,麻烦举个例子,或者写的格式。
如果我用fprintf是不是就可以解决这一问题?
在用fprintf的基础上,然后用frscanf读出?
本人QQ724835496,C菜鸟,希望有大神靠山,以后可以求教。
实在抱歉,三个结构体类型定义有误,应该是
login_node, *p2log_innode;
basic_info_node, *p2baisc_info_node;
score_info_node, *p2score_info_node;
本人是用链表将各个循环信息赋值,然后写入到文件中,所以各个结构体中是有*nextp来存放下一个结构体变量的地址的。
C语言把一个结构体数组写入文件分三步:
1、以二进制写方式(wb)打开文件
2、调用写入函数fwrite()将结构体数据写入文件
3、关闭文件指针
相应的,读文件也要与之匹配:
1、以二进制读方式(rb)打开文件
2、调用读文件函数fread()读取文件中的数据到结构体变量
3、关闭文件指针
参考代码如下: