鱼C论坛

 找回密码
 立即注册
查看: 2896|回复: 5

又是文件操作,写入和读取的内容不同。

[复制链接]
发表于 2016-2-23 08:46:59 | 显示全部楼层 |阅读模式

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

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

x
问题,性别和成绩法显示。
#include<stdio.h>
void menu();
void entry();
void check();

struct student
{
        char name[20];
        int id;
        char sex[5];
        int scores;
       
}P1;

int main()
{
        while(1)
        {
                menu();
                int a,ex=0;
                scanf("%d",&a);
                switch(a)
                {
                case 0:return 0;
                case 1:entry();break;
                case 2:check();break;       
                case 3:entry();break;
                case 4:entry();break;
                default:ex=1;
                }
                getchar();

                if(ex)
                        printf("提示:输入错误,请重新输入\n");
        }
}

void menu()
{
        printf("**************************\n");
        printf("***  学生成绩管理系统  ***\n");
        printf("***   1,录入学生成绩   ***\n");
        printf("***   2,查看学生成绩   ***\n");
        printf("***   3,学生成绩排序   ***\n");
        printf("***   4,删除学生成绩   ***\n");
        printf("***   5,修改学生成绩   ***\n");
        printf("***   0,退出管理系统   ***\n");
        printf("**************************\n");

       
}

void entry()
{
printf("当前功能:录入学生成绩\n");
printf("请输入 姓名 学号 性别 成绩\n");

FILE *fp;
fp=fopen("score.dat","a+");
scanf("%s%d%c%d",P1.name,&P1.id,P1.sex,&P1.scores);
fwrite(&P1,sizeof(P1),1,fp);
fclose(fp);
        getchar();
}

void check()
{
        FILE *fp;
        fp=fopen("score.dat","r");
        rewind(fp);

        printf("姓名\t 学号\t 性别\t 成绩\t\n");

        while(!feof(fp))
        {
                fread(&P1,sizeof(P1),1,fp);
                if(!feof(fp))
                        printf("%s\t %d\t %s\t %d\n",P1.name,P1.id,P1.sex,P1.scores);
       
        }
        fclose(fp);

性别和成绩法显示

性别和成绩法显示

}
问题,性别和成绩法显示。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-2-23 11:35:05 | 显示全部楼层
我是直接创建一个文件  在把文件的内容直接复制过去的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-23 18:23:28 | 显示全部楼层
你会不会输入时格式搞错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-23 21:22:04 | 显示全部楼层
void entry()
{
printf("当前功能:录入学生成绩\n");
printf("请输入 姓名 学号 性别 成绩\n");

FILE *fp;
fp=fopen("socre.txt","a+");
scanf("%s%d%s%d",P1.name,&P1.id,P1.sex,&P1.scores);  //  性别  也应该用%s
fwrite(&P1,sizeof(P1),1,fp);
fclose(fp);
        getchar();
}
61WZ0@M{M2P(@(ZP)78WWVG.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-24 17:25:37 | 显示全部楼层
void entry()
{
        printf("当前功能:录入学生成绩\n");
        printf("请输入 姓名 学号 性别 成绩\n");

        FILE *fp;
        fp = fopen("score.dat", "a+");
        scanf("%s %d %s %d", P1.name, &P1.id, &P1.sex, &P1.scores); // 这里 性别应该是%s 而且 在 P1.sex 前面 你忘了加 & 号  所以会导致性别输入不进去。
        fwrite(&P1, sizeof(P1), 1, fp);
        fclose(fp);
        getchar();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-25 20:37:54 | 显示全部楼层
c++的我会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 20:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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