文件\学生信息录入

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

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


目录
相关文章
|
4月前
|
SQL 前端开发 Java
已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中。需要对提交的信息进行修改,信息填入不能为空,为空则则有提示。
该博客文章通过示例演示了如何使用JSP结合SQL Server数据库向表`tb_book2`中添加图书信息,包括信息填写、前端验证、JavaBean封装图书属性、使用`PreparedStatement`执行插入操作,并确保了提交的信息不能为空,否则会给出提示。
|
7月前
|
JavaScript 算法 Java
看不惯各种信息收集表,我手写了一个身份证号输入组件
`shigen`是一位专注于Java、Python、Vue和Shell等技术的博主,分享知识和成长经历。为应对需频繁输入身份证号码的情况,`shigen`决定研究身份证校验机制。研究过程中,了解到身份证号码的生成规则,包括18位数字及校验码计算。通过编写JavaScript代码,实现了两个级别的身份证号码验证:一级仅检查基本格式,二级则加入校验码计算,确保符合生成规则。代码示例展示了逐步增强的验证功能,防止随意修改身份证号码。欢迎交流讨论,共同进步!
72 3
看不惯各种信息收集表,我手写了一个身份证号输入组件
如何快速核对未到场的人数名字EXCEL
如何快速核对未到场的人数名字EXCEL
7-27 通讯录的录入与显示 (10 分)
7-27 通讯录的录入与显示 (10 分)
450 0
方法:在线vcf手机号码通讯录批量导入
第一步:在线的话,需要你在电脑上,打开电脑软件《金芝号码提取导入助手》,然后把你的通讯录电脑excel表格打开,把里面的姓铭和号码分别复制出来,选择软件的第三个功能“导入通讯录”,接着你把复制好的铭字粘贴进去第一个方框,把复制好的号码粘贴进去第二个方框。第二步:点软件上这个功能模块的按钮“生成通讯录”,就能在线得到一个vcf文件,你再把这个文件保存到电脑上。第三步:当然还差最后一步,就是把这个vcf文件发送给你的手机(常见的传输方式就是通过电脑嶶xin或电脑Q,直接发给你的手机嶶xin或者手机q),你在手机上打开这个vcf格式的文件,就可以一键批量在线把号码批量导入通讯录了。
方法:在线vcf手机号码通讯录批量导入
方法:怎样把大量批量号码导入联系人到手机通讯录?
第一步:我们手里有一个excel表格,里面有铭字和号码,这是常见的格式,当然只有号码也可以。你把它们复制好,然后在电脑上打开软件:金芝号码提取导入助手,把刚才复制好的东西粘贴进来第二步:点它下方的按钮“转成通讯录”,你会得到一个通讯录格式的文件,然后你从电脑上把这个文件发给你的手机,在手机上打开它,就能把大量号码导入到通讯录成为联系人。第三步:怎么把文件从电脑上发给手机,这很简单啊,登录你的电脑某信或者某扣,发给你的手机某信或者某扣就ok了,很常见的方式啊。
方法:怎样把大量批量号码导入联系人到手机通讯录?
解答:有没有把手机号码批量导入通讯录软件?
第(一)步:有的,你在电脑上打开软件,金芝号码提取导入助手,然后把你准备好的号码和姓铭分别复制粘贴到软件上,点下方的按键“转换成通讯录”,那么就可以在电脑上得到一个通讯录文件。 第(二)步:你再把这个文件发给你手机,在手机上打开文件,就可以实现:号码导入通讯录的软件。 第(三)步:一个简单的细节问题,怎么把电脑上的文件发送给手机,这不是什么难事啊。打开你的电脑徽xin或电脑q,把它发给你的手机徽xin或者手机q就行了,小菜一碟。
解答:有没有把手机号码批量导入通讯录软件?
|
存储 Android开发
方式:把excel表格里的电话号码联系人导入到手机通讯录
怎么把excel表格里的电话号码联系人导入到手机通讯录?这里我演示一个网上常见的工具软件,金芝号码提取导入助手,来看看他是如何快速简单的完成这个事情的。此外,它也可以导入安卓手机的,比如小米华为等,不只是苹果手机可以。
1433 0
方式:把excel表格里的电话号码联系人导入到手机通讯录
方法:用什么软件可以把号码批量导入通讯录?
第1步:在电脑上打开软件,金芝号码提取导入助手,然后你把你的表格里的人铭和号码分别复制粘贴到软件上,点通讯录转换,就会得到一个文件。第2步:你从电脑上把这个文件发给你的手机,手机上打开文件,就可以完成用软件把号码批量导入通讯录。第3步:怎么发?电脑徽xin电脑Q,发给你的手机徽xin手机Q就可以了,简单的常见的发送文件方法。我操作过,就是这几个步骤。
方法:用什么软件可以把号码批量导入通讯录?