c语言程序出现错误,C语言程序错误,不能正常读写文件,求解啊
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#define LEN sizeof(struct student)
#include
#include
#include
struct student
{
int num;
char name[20];
int score[3];
int aver;
}; void personal_information_input(FILE *fp)
{
struct student *p;
int a,i,n;
printf("请输入将要输入的学生个数: ");
scanf("%d",&n);
printf("请输入学生的学号姓名和三科成绩:\n");
for(i=0;i
{
a=i+1;
printf("%d:",a);
p=(struct student *)malloc(LEN);
scanf("%d%s%d%d%d",&p->num,&p->name,&p->score[0],&p->score[1],&p->score[2]);
fwrite(p,LEN,1,fp);
p++;
}
} void personal_information_print(FILE *fp)
{
struct student *p,*p1;
int i=0;
p=(struct student *)malloc(LEN);
printf("请输入需要查找的学生的学号: ");
scanf("%d",&p->num);
p1=(struct student *)malloc(LEN);
fread(p1,LEN,1,fp);
while(!feof(fp))
{
fread(p1,LEN,1,fp);
if(p1->num==p->num)
printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\n",
p->num,p->name,p->score[0],p->score[1],p->score[2],p->aver);
p1++;
fread(p1,LEN,1,fp);
}
} void average(FILE *fp)
{
struct student *p1;
p1=(struct student *)malloc(LEN);
fread(p1,LEN,1,fp);
while(!feof(fp))
{
p1->aver=(p1->score[0]+p1->score[1]+p1->score[2])/3.0;
fwrite(p1,LEN,1,fp);
p1++;
// p1=(struct student *)malloc(LEN);
fread(p1,LEN,1,fp);
}
}
void score_output(FILE *fp)
{
struct student *p1;
p1=(struct student *)malloc(LEN);
fread(p1,LEN,1,fp);
while(!feof(fp))
{
printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\n",
p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->aver);
// p1=(struct student *)malloc(LEN);
p1++;
fread(p1,LEN,1,fp);
}
}
void score_search(FILE *fp)
{
struct student *p,*p1;
p=(struct student *)malloc(LEN);
printf("输入要查找的学生成绩: ");
scanf("%d",&p->score[0]);
p1=(struct student *)malloc(LEN);
fread(p1,LEN,1,fp);
while(!feof(fp))
{
if(p1->score[0]==p->score[0])
printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\n",
p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->aver);
else if(p1->score[1]==p->score[0])
printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\n",
p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->aver);
else if(p1->score[2]==p->score[0])
printf("学号:%d 姓名:%s 成绩:%d %dd %d 平均成绩:%d\n",
p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->aver);
p1=(struct student *)malloc(LEN);
fread(p1,LEN,1,fp);
p1++;
}
} void main()
{
char ch;
FILE *fp;
char filename[20];
printf("请输入所用的文件名:");
scanf("%s",filename);
if((fp=fopen(filename,"ab+"))==NULL)
{
printf("无法打开此文件!\n");
exit(0);
}
else
{ fp=fopen(filename,"wb+"); }
ch=getchar();
while(1)
{
printf("\n******************欢迎使用学生信息管理系统********************\n");
printf("\n******************** 1. 个人信息的录入 ********************\n");
printf("\n******************** 2. 个人信息的输出 ********************\n");
printf("\n******************** 3. 计算平均成绩 ********************\n");
printf("\n******************** 4. 成绩的查询 ********************\n");
printf("\n******************** 5. 成绩的输出 ********************\n");
printf("\n******************** 6. 退出程序 ********************\n");
printf("\n************ 请选择上述选项执行相应的操作 ************\n");
printf("************** 你选择执行的选项是: ");
ch=getchar();
switch (ch)
{
case '1':personal_information_input(fp);break;
case '2':personal_information_print(fp);break;
case '3':average(fp);break;
case '4':score_search(fp);break;
case '5':score_output(fp);break;
case '6':exit(0);
default: break;
}
getchar();
}
}
c语言程序出现错误,C语言程序错误,不能正常读写文件,求解啊相关推荐
- 第十一章 文件操作_C语言fscanf和fprintf函数的用法详解(格式化读写文件)
fscanf() 和 fprintf() 函数与前面使用的 scanf() 和 printf() 功能相似,都是格式化读写函数,两者的区别在于 fscanf() 和 fprintf() 的读写对象不是 ...
- c语言调试时出现的三种错误,C语言课件 第十四章 常见错误和程序调试
<C语言课件 第十四章 常见错误和程序调试>由会员分享,可在线阅读,更多相关<C语言课件 第十四章 常见错误和程序调试(36页珍藏版)>请在人人文库网上搜索. 1.第十四章常见 ...
- 如何定位逻辑错误C语言,如何调试C程序的语法错误和逻辑错误
如何调试C程序的语法错误和逻辑错误 语法错误] 语法错误,这是C语言初学者出现最多的错误,比如,分号":"是每个C语句的结束的标志,在C语句后忘记写":"就是语 ...
- c语言中的语义错误和语法错误,C语言程序中对错误的调试
程序调试 现在我们已经可以编写一个简单的 C语言程序了,但是你可能会犯一些简单的错误.程序的错误通常叫做 bug,而发现和修正这些错误的过程叫做调试.下面有一个带有一些错误的程序,看看你能找出多少. ...
- c语言conflicting types,gcc编译C程序出现”error conflicting types for function”编译错误的分析解决...
今天使用gcc编译C语言程序时出现 "error conflicting types for function" 编译错误,这个错误的原因是什么?如何解决?以下看正文的讲解. 在使 ...
- 一个c语言程序只要编译和链接没有错误,一个 C 语言程序只要编译和链接没有错误,程序运行结果就肯定正确...
一个 C 语言程序只要编译和链接没有错误,程序运行结果就肯定正确 更多相关问题 网页表单中不能插入表格.() 要想在一个网页中嵌套另外一个网页,一般可以使用页内框架.() 贸易也是一种特殊的技术.() ...
- c语言——程序出现C4996:scanf 等错误的解决方法
c语言--程序出现C4996:scanf 等错误的解决方法(不用scanf_s替换解决) 问题实例 解决方法 方法1 方法2 在VS编译器下,编写的c语言程序在调试编译时可能会出现c4996警告或错误 ...
- 关于python中程序流程结构-Python语言程序设计(第4章:程序结构设计)
4.1 算法 [1]计算机程序可视为数据结构和算法的集成,这种集成体现为以下两方面的内容:数据是程序实现的基础:算法要依靠程序来完成功能. [2]算法的特点:有穷性:确定性:零个或多个输入:一个或多个 ...
- python语言程序设计基础网课-Python语言程序设计基础答案
[填空题]逻辑型数据在参与算术运算的过程中可以被当作整数进行操作,通常True的值对应整数1,False的值对应整数____________. [单选题]在Python中,不可以用来表示字符串的符号是 ...
- python语言程序设计基础网课-程序设计基础(Python语言)答案
[单选题]下面代码的输出结果是 d = ...
最新文章
- 【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
- 转载:CSS垂直居中总结
- 数据算法之快速排序(quickSort)的Java实现
- redhat自带mysql_rhel4卸载系统自带的mysql4.1
- python第五章课后题答案_python程序设计基础(嵩天)第五章课后习题部分答案
- 蓝桥杯泊松分酒java_【蓝桥杯】泊松分酒
- PLSQL 缺少MSVCR120.dll
- UCOS操作系统——创建与删除任务(三)
- 卡巴斯基实验室2017年威胁预测
- https://www.cnblogs.com/skywang12345/category/455711.html
- linux 服务器搭建opvn
- 软件测试自学英语语法,5个能力一流的英语自学APP,赶紧盘它,让你告别零基础...
- TBB基础之parallel_for
- 将区块链带到第三世界:分布式电商BitCherry的格局与野心
- rundll32 常用命令
- java计算机毕业设计企业间信息交互系统源代码+数据库+系统+lw文档
- 获取管理员权限的相关命令
- Follow me 学习总结
- 基于Jfinal-Engine实现 word 文档的渲染导出功能,通过xml渲染后再转word
- 火山引擎入选国内首个《边缘计算产业全景图》
热门文章
- 评估服务基础性能应该参考那些指标?
- 5分钟快速接入钉钉实现钉钉考勤
- 开发人员如何学习 Kubernetes
- 五分钟了解Consul
- [原]排错实战——通过对比分析sysinternals事件修复程序功能异常
- 一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE
- Blazor——Asp.net core的新前端框架
- 基于IdentityServer4 实现.NET Core的认证授权
- 业务流程、长周期服务和微服务
- [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了