杏子和橙子 2022-06-08 13:30 采纳率: 79.2%
浏览 687
已结题

从键盘输入4个学生信息(学号,姓名,数学成绩,英语成绩),然后把它们存到磁盘的二进制文件c:\exp.txt中。


#include<stdio.h>
#include<stdlib.h>
struct student
{
    char num[10];
    char name[10];
    float math;
    float english;
}stu[5];
int main()
{
    int i;
    FILE *fp;
    for(i=0;i<4;i++)
    {
        printf("no.");
        scanf("%s",stu[i].num);
        printf("name.");
        scanf("%s",stu[i].name);
        printf("math.");
        scanf("%f",&stu[i].math);
        printf("english.");
        scanf("%f",&stu[i].english);
    }
    if((fp=fopen("c:\exp","w"))==NULL)
    {
        printf("\nCan't open this file\n");
        exit(0);
    }
    fclose(fp);
    fp=fopen("c:\exp","r");
    for(i=0;i<4;i++)
    {
        fread(&stu[i],sizeof(struct student),1,fp);
        printf("\n%s,%s,%.2f,%.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english);
    }
    fclose(fp);
return 0;
}

我不知道咋写,但好像没代码题目审核不成功。

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-06-08 15:35
    关注

    供参考:

    #include<stdio.h>
    #include<stdlib.h>
    struct student
    {
        char  num[10];
        char  name[10];
        float math;
        float english;
    }stu[5], st[5];
    int main()
    {
        int i;
        FILE* fp;
        for (i = 0; i < 4; i++)
        {
            printf("no.");
            scanf("%s", stu[i].num);
            printf("name.");
            scanf("%s", stu[i].name);
            printf("math.");
            scanf("%f", &stu[i].math);
            printf("english.");
            scanf("%f", &stu[i].english);
        }
        if ((fp = fopen("d:\\exp.txt", "w")) == NULL) //if ((fp = fopen("c:\exp", "w")) == NULL)
        {
            printf("\nCan't open this file\n");
            exit(0);
        }
        fwrite(stu, sizeof(struct student), 4, fp); //修改 写入文件
        fclose(fp);
        fp = fopen("d:\\exp.txt", "r");  //fp = fopen("c:\exp", "r");
        for (i = 0; i < 4; i++)
        {
            fread(&st[i], sizeof(struct student), 1, fp);
            printf("\n%s,%s,%.2f,%.2f\n", st[i].num, st[i].name, st[i].math, st[i].english);
        }
        fclose(fp);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月17日
  • 已采纳回答 6月9日
  • 修改了问题 6月8日
  • 创建了问题 6月8日

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证