鱼C论坛

 找回密码
 立即注册
查看: 1947|回复: 1

文件输入输出//有些急

[复制链接]
发表于 2020-4-12 17:17:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在文件输入学生姓名学号成绩然后统计不同等级人数,然后读取文件显示这些信息
我输入第一个就暂停了,请问是为什么?

#include<stdio.h>

struct m
{
                char name[30];
                long int number;
                int score;
};

void main()
{
        struct m student[30];
        struct m *n = student;
        int A,B,C,D,E;
        int a = 0,b = 0,c = 0,d = 0,e = 0,num,i;
        FILE *p;

        if((p = fopen("new.txt","w+")) == NULL)
        {
                printf("打开文件失败!\n");
                exit(0);
        }
       
        for(i=0;i<30;i++)//录入信息,统计人数
        {
                printf("学生姓名,学号,成绩(输入-1停止):");
                scanf_s("%s%ld%d",(n+i)->name,&(n+i)->number,&(n+i)->score);
                if((n+i)->name == "-1")
                {
                        break;
                }
                if((n+i)->score<60)
                {
                        e ++;
                }
                if((n+i)->score>=60&&(n+i)->score<70)
                {
                        d ++;
                }
                if((n+i)->score>=70&&(n+i)->score<80)
                {
                        c ++;
                }
                if((n+i)->score>=80&&(n+i)->score<90)
                {
                        b ++;
                }
                if((n+i)->score>=90&&(n+i)->score<=100)
                {
                        a ++;
                }
                fwrite(n+i,sizeof(struct m),1,p);
        }

        fprintf(p,"%d%d%d%d%d",a,b,c,d,e);//输入各等级人数

        if(fclose(p))
        {
                printf("Can not close the file\n");
        }

        if((p = fopen("new.txt","r")) == NULL)
        {
                printf("打开文件失败!\n");
                exit(0);
        }

//输出
        num = i;

        for(i=0;i<num;i++)
        {
                printf("\n第%d个同学姓名,学号,成绩:",i+1);
                fread(n+i,sizeof(struct m),1,p);

        }

        fscanf(p,"%d%d%d%d%d",&A,&B,&C,&D,&E);
       
        printf("A:%d\nB:%d\nC:%d\nD:%d\nE:%d\n",A,B,C,D,E);

                if(fclose(p))
        {
                printf("Can not close the file\n");
        }
       
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-12 18:59:40 | 显示全部楼层
scanf_s中取地址后面都括起来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 06:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表