文件\学生信息录入

简介: 文件\学生信息录入

编译器:vs2010

文件操作里值得一提的是:如果文件不存在,新生成的文件会出现在源码同目录下,而不是和解决方案同一目录下(如果是指定的绝对路径就想放哪里就放哪里,但是不好移植)

#include<stdio.h>
#include<stdlib.h>
#define N 40
 
//定义结构体
typedef struct student
{
  char id[20];
  char name[30];
  int age;
  double score;
}stu;
 
FILE* CreateFile(stu stu1[],int numofstu)
{
  FILE *fp;
  int i;
  //打开文件
  fp=fopen("./Info.dat","wb");
  if(fp==0)
  {
    printf("file error\n");
    exit(1);
  }
  for(i=0;i<numofstu;i++)
  {
    printf("请输入(%d/%d):",i+1,numofstu);
    scanf("%s%s%d%lf",stu1[i].id,stu1[i].name,&stu1[i].age,&stu1[i].score);
  }
  fwrite(stu1,sizeof(stu),numofstu,fp);
  fclose(fp);
  return fp;
}
void Sort(int num,stu stu2[])
{
  int i;
  stu tmp;
  for(i=0;i<num-1;i++)
  {
    if(stu2[i].score<stu2[i+1].score)
    {
      tmp=stu2[i];
      stu2[i]=stu2[i+1];
      stu2[i+1]=tmp;
    }
  }
}
 
FILE* ReadOut(int num,stu stu2[])
{
  FILE *fp;
  int i=0;
  //读取文件内容
  fp=fopen("./Info.dat","rb");
  if(fp==0)
  {
    printf("file error\n");
    exit(1);
  }
  rewind(fp);
  fread(&stu2[i],sizeof(stu),1,fp);
  while(!feof(fp))
  {
    i++;
    fread(&stu2[i],sizeof(stu),1,fp);
  }
  num=i;
  Sort(num,stu2);
  for(i=0;i<num;i++)
    printf("%s %s %d %f\n",stu2[i].id,stu2[i].name,stu2[i].age,stu2[i].score);
  fclose(fp);
  return fp;
}
 
int main()
{
  //初始化
  FILE *fp;
  stu stu1[N]={};
  stu stu2[N];
  int num=0,numofstu;
 
  printf("num of students?");
  scanf("%d",&numofstu);
 
  fp=CreateFile(stu1,numofstu);
  
 
  
  //读取
  fp=ReadOut(num,stu2);
 
  //关闭文件
  //fclose(fp);
  printf("操作完成\n已关闭文件\n");
 
  system("pause");
  return 0;
}


目录
相关文章
|
5月前
|
SQL 前端开发 Java
已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中。需要对提交的信息进行修改,信息填入不能为空,为空则则有提示。
该博客文章通过示例演示了如何使用JSP结合SQL Server数据库向表`tb_book2`中添加图书信息,包括信息填写、前端验证、JavaBean封装图书属性、使用`PreparedStatement`执行插入操作,并确保了提交的信息不能为空,否则会给出提示。
|
Android开发
Android系统开发中产品信息文件说明
Android系统开发中产品信息文件说明
133 1
通讯录添加信息
通讯录添加信息
119 0
7-27 通讯录的录入与显示 (10 分)
7-27 通讯录的录入与显示 (10 分)
459 0
|
XML Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
133 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)
|
Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(二)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
171 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(二)
|
JavaScript Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(三)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
191 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(三)
|
消息中间件 交易中间件 应用服务中间件
什么是数据、信息、知识和智慧?
2006年1月份左右,我曾经撰写了一篇涉及数据,信息,知识和智慧的文章,在科学网看到倪鹏云老师也在探讨这个问题,于是我将原文一些核心的内容整理出来形成这篇文章与大家进行探讨。 在知识管理中,有一个经典的知识阶层图,本文将以这个图作为阐述的顺序依据。
什么是数据、信息、知识和智慧?
通讯录文件中存有若干联系人的信息,每个联系人的信息由姓名和电话号码组成。编写程序完成以下功能:输入姓名,若通讯录文件中存在,则将该联系人信息输出;若不存在,则输出“Not Found”。
通讯录文件中存有若干联系人的信息,每个联系人的信息由姓名和电话号码组成。编写程序完成以下功能:输入姓名,若通讯录文件中存在,则将该联系人信息输出;若不存在,则输出“Not Found”。
607 0

热门文章

最新文章

下一篇
开通oss服务