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

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);
}

运行结果:
图片说明

  • 写回答

4条回答 默认 最新

  • restart_ovag 2023-03-29 16:25
    关注

    fwrite与fread是在缓冲区与文件之间对二进制的读写,所以open时要打开的文件类型是“.dat”

    评论

报告相同问题?

悬赏问题

  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?