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

从键盘输入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日

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大