初学C语言,求大伙儿帮助
我在用fread读取文件时,用这种方式不断读取文件中的内容并放到结构体p中输出
p是account类型的结构体。testpointer是文件指针。
while ((fread(p, sizeof(account), 1, testpointer)) != 0) {
if (p->state == 1)
printf(" 正常 ||");
else
printf(" 冻结中!||");
printf(" %-4d ||", p->sequence);
printf(" %-24s ||", p->num);
printf(" %-.2f\n", p->money);
free(p);
p = (account*)malloc(sizeof(account));
}
但是这么写的话,他输出10次p结构体后,再进行fread就会出现乱码,但是文件内容本身是没问题的,如果开头就用fseek直接从乱码部分开始fread并输出,结果是正常的
如图
图片中编号为0到10的内容是正常输出的,后面三个是异常读取输出的。逐步运行时发现后三个数据读取后变成一大堆屯。
但是如果利用fseek跳到后面,直接输出后三个数据,会发现这三个数据是正常的。
编程平台是visual studio。
求帮助啊,修半天了还是不知道为什么,网上搜也搜不到相关问题
####################################
2022/4/5/ 17:11
已解决,从这篇文章看到的相关问题和解决办法
https://blog.csdn.net/weixin_39805364/article/details/117185848