鱼C论坛

 找回密码
 立即注册
查看: 1257|回复: 1

用fwrite输出数据后,想要用fread读取就不能! 第二个代码哪里出错了?如下代码

[复制链接]
发表于 2015-8-8 23:33:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 krakra 于 2015-8-8 23:46 编辑



//第一个代码
#include<stdio.h>
#define SIZE 2

typedef struct   //typedef
{
    char name[10];
    int num;
    int age;
    char addr[15];
    }student;

student stu[SIZE];

void save()
{
    FILE *fp;
    int i;
    if((fp = fopen("dat.txt","wb")) == NULL)
    {
        printf("无法打开此文件!\n");
        return;
    }
    for(i = 0; i < SIZE; i++)
    if(fwrite(&stu[i], sizeof(student), 1, fp) != 1)
    {
                printf("文件写入错误。!\n");
    }
                fclose(fp);
}

void main()
{
    int i;
    for(i = 0; i < SIZE; i++)
        scanf("%s,%d,%d,%s",&stu[i].name,&stu[i].num,&stu[i].age,&stu[i].addr);
    save();
}



//第二个代码
#include<stdio.h>
#include<stdlib.h>
#define SIZE 2

typedef struct
{
        char name[10];
        int num;
        int age;
        char addr[15];
}student;

student stu[SIZE];
int i;

void load()
{
        FILE *fp;
       
        if(!(fp = fopen("dat.txt", "rb")))//打开文件
        {
                printf("Cannot open the file!");
                return;
        }

        for(i = 0; i < SIZE; i++)
        {
                fread(&stu[i], sizeof(student),1 , fp);//读取数据块!
        }
        fclose(fp);
}

void main()
{

for(i = 0; i < SIZE; i++)
        {
                load();
                printf("%s%d%d%s", stu[i].name, stu[i].num, stu[i].age, stu[i].addr );
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-8-8 23:35:13 | 显示全部楼层
本帖最后由 krakra 于 2015-8-8 23:44 编辑

1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 05:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表