用二进制向文件写一组数据的代码

关键函数:
fread();向文件读数据。
fwrite();向文件写数据。

#include<stdio.h>
#include<stdlib.h>
#define Size 10

struct Student_type
{
    char name[10];
    int num;
    int age;
    char add[10];
}Stu[10];

void save()
{
    FILE *fp;
    int i;
    if ((fp = fopen("file1", "wb")) == NULL)
    {
        printf("could not open file\n");
        return;
    }
    for (i = 0; i < Size; i++)
    {
        if (fwrite(&Stu[i], sizeof(struct Student_type), 1, fp) != 1)
        {
            printf("file write error\n");
        }
    }
    fclose(fp);
}

int main()
{
    int i;
    printf("please enter data of student\n");
    for (i = 0; i < Size; i++)
    {
        scanf("%s%d%d%s", Stu[i].name, &Stu[i].num, &Stu[i].age, Stu[i].add);
    }
    save();
    return 0;
}

以下是验证代码,用它在file1中读入数据,然后在屏幕上输出。
记得要把前面的注释掉喔!

//int main()
//{
//  int i;
//  FILE *fp;
//  if ((fp = fopen("file1", "rb")) == NULL)
//  {
//      printf("could not open file\n");
//      exit(0);
//  }
//  for (i = 0; i < Size; i++)
//  {
//      fread(&Stu[i], sizeof(struct Student_type), 1, fp);
//      printf("%-10s%5d%5d%10s\n", Stu[i].name, Stu[i].num, Stu[i].age, Stu[i].add);
//  }
//  fclose(fp);
//  return 0;
//}

猜你喜欢

转载自blog.csdn.net/qinshiyang/article/details/82710966