krakra 发表于 2015-8-8 23:33:42

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

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



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

typedef struct   //typedef
{
    char name;
    int num;
    int age;
    char addr;
    }student;

student stu;

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, 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.name,&stu.num,&stu.age,&stu.addr);
    save();
}



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

typedef struct
{
        char name;
        int num;
        int age;
        char addr;
}student;

student stu;
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, sizeof(student),1 , fp);//读取数据块!
        }
        fclose(fp);
}

void main()
{

for(i = 0; i < SIZE; i++)
        {
                load();
                printf("%s%d%d%s", stu.name, stu.num, stu.age, stu.addr );
        }
}

krakra 发表于 2015-8-8 23:35:13

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

1
页: [1]
查看完整版本: 用fwrite输出数据后,想要用fread读取就不能! 第二个代码哪里出错了?如下代码