文件\学生信息录入

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

编译器: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;
}


目录
相关文章
|
6月前
|
Java 数据库
图书信息查询系统
图书信息查询系统
74 1
|
3月前
|
SQL 前端开发 Java
已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中。需要对提交的信息进行修改,信息填入不能为空,为空则则有提示。
该博客文章通过示例演示了如何使用JSP结合SQL Server数据库向表`tb_book2`中添加图书信息,包括信息填写、前端验证、JavaBean封装图书属性、使用`PreparedStatement`执行插入操作,并确保了提交的信息不能为空,否则会给出提示。
|
6月前
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
本文介绍了如何批量快速查询手机号码归属地并进行分类。首先,通过提供的百度网盘或腾讯云盘链接下载免费查询软件。其次,开启软件,启用复制粘贴功能,直接粘贴号码列表并选择高速查询。软件能在极短时间内(如1.76秒内)完成40多万个号码的查询,结果包括归属地、运营商、邮箱和区号,且数据准确。之后,可直接导出数据至表格,若数据超过100万,可按省份、城市及运营商分类导出。文章还附带了操作动画演示,展示全程流畅的处理大量手机号码归属地查询的过程。
317 0
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
|
Shell Perl
显示系统一些基本信息
显示信息如下: 系统版本 系统内核 虚拟平台 主机名 ip地址 开机信息有没有报错,有的话输出到屏幕
65 1
如何快速核对未到场的人数名字EXCEL
如何快速核对未到场的人数名字EXCEL
7-27 通讯录的录入与显示 (10 分)
7-27 通讯录的录入与显示 (10 分)
444 0
方法:在线vcf手机号码通讯录批量导入
第一步:在线的话,需要你在电脑上,打开电脑软件《金芝号码提取导入助手》,然后把你的通讯录电脑excel表格打开,把里面的姓铭和号码分别复制出来,选择软件的第三个功能“导入通讯录”,接着你把复制好的铭字粘贴进去第一个方框,把复制好的号码粘贴进去第二个方框。第二步:点软件上这个功能模块的按钮“生成通讯录”,就能在线得到一个vcf文件,你再把这个文件保存到电脑上。第三步:当然还差最后一步,就是把这个vcf文件发送给你的手机(常见的传输方式就是通过电脑嶶xin或电脑Q,直接发给你的手机嶶xin或者手机q),你在手机上打开这个vcf格式的文件,就可以一键批量在线把号码批量导入通讯录了。
方法:在线vcf手机号码通讯录批量导入
方法:怎样把大量批量号码导入联系人到手机通讯录?
第一步:我们手里有一个excel表格,里面有铭字和号码,这是常见的格式,当然只有号码也可以。你把它们复制好,然后在电脑上打开软件:金芝号码提取导入助手,把刚才复制好的东西粘贴进来第二步:点它下方的按钮“转成通讯录”,你会得到一个通讯录格式的文件,然后你从电脑上把这个文件发给你的手机,在手机上打开它,就能把大量号码导入到通讯录成为联系人。第三步:怎么把文件从电脑上发给手机,这很简单啊,登录你的电脑某信或者某扣,发给你的手机某信或者某扣就ok了,很常见的方式啊。
方法:怎样把大量批量号码导入联系人到手机通讯录?
方法:用什么软件可以把号码批量导入通讯录?
第1步:在电脑上打开软件,金芝号码提取导入助手,然后你把你的表格里的人铭和号码分别复制粘贴到软件上,点通讯录转换,就会得到一个文件。第2步:你从电脑上把这个文件发给你的手机,手机上打开文件,就可以完成用软件把号码批量导入通讯录。第3步:怎么发?电脑徽xin电脑Q,发给你的手机徽xin手机Q就可以了,简单的常见的发送文件方法。我操作过,就是这几个步骤。
方法:用什么软件可以把号码批量导入通讯录?