qq_45521530
2020-06-08 21:57
采纳率: 0%
浏览 643

fwrite写入后,fread读出的有部分是乱码

题目:①创建一个文件FP,该文件包含n组结构体化的人员,每个人员的名称最多20个字符,以及一个整数以表示该人员的年龄(将其写为函数)。
②在屏幕上输出所有元素,一行输出一个人的姓名年龄(将其写为函数)

#include<stdio.h>
int i;
struct people {
    char name[20];
    int age;
};
void CreateFile(struct people num[],int n)
{
    for(i=0;i<n;i++)
    {
        printf("请输入第%d个人的姓名:",i+1);
        scanf("%s",&num[i].name);
        printf("请输入第%d个人的年龄:",i+1);
        scanf("%d",&num[i].age);
    }
    FILE *fp;
    fp=fopen("FP.txt","wb");
    fwrite(&num[i],sizeof(people),2,fp);
    fclose(fp);
}
void ReadFile(struct people num[],int n)
{
    FILE *fp;
    fp=fopen("FP.txt","rb");
    for(i=0;i<n;i++) 
    {
        fread(&num[i],sizeof(people),2,fp);
        printf("%s %d\n",num[i].name,num[i].age);
    }
    fclose(fp);
}
int main(void)
{
    int n; 
    printf("请输入人数:");
    scanf("%d",&n);
    struct people num[n];
    CreateFile(num,n);
    ReadFile(num,n);
}

运行结果:
图片说明

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题