C语言向文件写入学生信息并读取显示出来

代码功能:

1.从控制台输入学生信息(姓名、年龄、学号和平均分),可以输入任意数目的信息数据。
2.将输入的学生信息数据写入文件中进行保存,文件每行存储一条学生信息,姓名、年龄、学号、平均分以tab(\t)为分隔。
3.学生信息保存成功都并读取出来进行查看。

代码中包含的函数介绍:

1.fopen()函数原型:
FILE *fopen(const char filename, const char mode);
函数功能:
使用给定的模式mode打开filename所指向的文件。
2.字符串 "wt+"作用
以读/写方式打开或新建一个文本文件,允许读和写。
3.perror()函数功能:
用来将上一个函数发生错误的原因输出到标准设备
4.fprintf()函数原型:
int fprintf (FILE
stream, const char
format, [argument])
功能:
fprintf()函数根据指定的格式(format),向输出流(stream)写入数据(argument)
注意:fprintf() 函数并不在结尾自动添加换行符(\n)

5.fscanf()函数原型:
int fscanf(FILE *stream, char *format[,argument…]);
功能:
根据指定的格式(format),从一个文件流(stream)中读取数据(argument),fscanf遇到空格和换行时结束,注意空格时也结束
6.fflush()函数功能:
刷新缓冲区,将缓冲区中的内容写入文件。
7.rewind()函数功能:
是将文件内部的指针重新指向一个流的开头
8.fclose()函数功能:
关闭一个流。注意:使用fclose()函数就可以把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针和有关的缓冲区。

代码流程:

一、以读写的模式打开文件,如果文件存在则清空里面的数据,如果文件不存在则新建文件。
二、从控制台输入学生信息并写入文件中,通过while循环不断读取学生信息,没有限制具体数目,按 Ctrl+Z 组合键结束输入。Ctrl+Z表示文件输入结束,即EOF。
注意:fprintf() 函数并不在结尾自动添加换行符(\n),显示增加换行符的目的是:
用记事本打开文件后可以清晰的看到学生信息,一个学生占据一行;否则所有学生信息都在一行,阅读困难。
后续读取文件时,fscanf() 以换行符为读取结束标志,没有换行符将不能正确读取数据。
两点说明:
1.输入结束时并没有将输入的学生信息保存到文件中,而是停留在缓冲区,导致后边读取文件时没有内容。所以必须通过 fflush() 函数刷新缓冲区,将缓冲区中的内容写入文件。
2.将缓冲区的内容写入文件后,文件内部位置指针实际指向了文件结尾,必须重置位置指针,否则后续读取会出错。rewind() 函数将位置指针重置到文件开头。
三、最后用 fscanf()函数 从文件中将学生信息一行一行的读取出来

代码实现:

#include <stdio.h>
#include<stdlib.h>
#include<errno.h>#define FILE_PATH "D:/VScode-progect/demo.txt"   //文件路径int main()
{char name[30];     //姓名int age;           //年龄int studNo;        //学号float score;         //平均分FILE *fp;          //文件指针//判断文件是否能够正确创建/打开   if ((fp = fopen(FILE_PATH,"wt+")) == NULL){perror(FILE_PATH);exit(1);}//从控制台输入学生信息并写入文件printf("请输入姓名、年龄、学号和平均分(以空格分隔):\n");while (scanf("%s %d %d %f",name,&age,&studNo,&score) != EOF){fprintf(fp,"%s\t%d\t%d\t%0.2f\n",name, age, studNo, score);}//刷新缓冲区,将缓冲区的内容写入文件fflush(fp);//重置文件内部位置指针,让位置指针指向文件开头rewind(fp);//从文件中读取学生信息printf("\n读取文件内容:\n");while (fscanf(fp, "%s\t%d\t%d\t%f", name, &age, &studNo, &score) != EOF){printf("%s  %d  %d  %0.2f\n", name, age, studNo, score);}fclose(fp);system("pause");
}

结果展示:


C语言向文件写入学生信息并读取显示出来相关推荐

  1. R语言将文件写入CSV,并读取

    R语言将文件写入CSV,并读取 # 写入文件 write.csv(data,file = "mydata.csv",row.names = F) # 读文件 data_handle ...

  2. 【C语言小游戏】学生信息管理系统

    偶然翻到了自己大一时候写的一些代码,代码冗余,但还是想保存下来,以作纪念. 文章目录 1.运行效果 2.运行环境 3.完整代码 1.运行效果 2.运行环境 源码(Dev5.4.0版本下可直接(.cpp ...

  3. c语言输入的成绩由高到低该怎么,c语言编程:输入学生信息(姓名年龄分数)并按照分数由高到低输出...

    <c语言编程:输入学生信息(姓名年龄分数)并按照分数由高到低输出>由会员分享,可在线阅读,更多相关<c语言编程:输入学生信息(姓名年龄分数)并按照分数由高到低输出(2页珍藏版)> ...

  4. python向json文件写入中文信息

    ''' 功能:python向json文件写入中文信息: 创建json数据. ''' import jsonorder_info={'订单需求信息': {'订单任务编号':'','观测目标名称':'', ...

  5. c语言程序设计课程设计学生信息管理系统,C语言程序设计课程设计报告----学生信息管理系统.doc...

    河南理工大学计算机学院 <C语言程序设计>课程设计报告 题目: 学生信息管理系统 专业: 计算机科学与技术 班级: 计算机XX班 学号: 311009033232 姓名: ***** 日期 ...

  6. 【C 语言】文件操作 ( 学生管理系统 | 插入数据 | 查询数据 | 删除数据 )

    文章目录 一.学生管理系统 1.插入数据 2.查询数据 3.删除数据 二.完整代码 一.学生管理系统 实现一个简易学生管理系统 , 验证文件操作 ; 1.插入数据 从命令行接收数据 , 放入结构体成员 ...

  7. 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )

    文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...

  8. C语言向文件写入内容并读取显示

    将学生信息(姓名.年龄.学号和平均分)写入文件,然后读取显示出来. 要求: 从控制台输入学生信息: 可以输入任意数目的学生信息: 文件每行存储一条学生信息,姓名.年龄.学号.平均分以tab(\t)为分 ...

  9. c语言课程设计报告15页左右,C语言课程设计报告——学生信息管理系统(15页)-原创力文档...

    C语言程序设计 课程设计报告 设计题目:学生信息管理系统 专 业 电子信息工程 班 级 学 生 指导教师 年 学期 设计任务: C语言课程设计任务书及指导书 5 题目:学生信息管理系统 功能:学生信息 ...

  10. C语言新建文件写入数据

    经过前面的学习,我们知道如何从一个文件中读取数据.那么,下面,我们学习怎么样往一个文件中写入数据.C语言提供了fwrite()函数,用于往一个打开的文件指针中写入数据.函数的定义如下: size_t ...

最新文章

  1. mysql相关操作(一)
  2. cogs 1456. [UVa 10881,Piotr's Ants]蚂蚁
  3. 分布式锁(Redisson)-从零开始,深入理解与不断优化
  4. 如何把图片转为html,如何将原始十六进制图像转换为html图像
  5. js中arguments的用法
  6. C#反射Assembly 详细说明
  7. 【知识碎片】JavaScript篇
  8. 关于vue自定义事件中,传递参数的一点理解
  9. 算法:回溯九 Plus在数字字符串中加入加号,求所有情况的和
  10. JAVA常见的异常6_Java常见异常总结
  11. 非学习的点云配准方法汇总
  12. 解决复制文件时出乱码
  13. 异步请求(多种方式)
  14. 银联无跳转支付流程(银联侧开通)
  15. 一次解决IDEA所有乱码情况
  16. CISCO banner MOTD, Login的区别
  17. [Qt] TCP客户端与服务器断开连接自动重联机制
  18. 系统在此应用程序堆栈溢出_Web应用程序:在开始之前选择正确的技术堆栈
  19. [病毒分析]熊猫烧香(中)病毒释放机理
  20. python脚本模板

热门文章

  1. python实现自动打电话软件_python拨打电话
  2. 下载图片的java工具类_ftputil 下载图片工具类
  3. HTML5求自动在闪,HTML5 重复而不停闪烁的团状物
  4. java语言的输入输出_java语言的输入输出
  5. 项目中css初始化通用代码(源码,直接套)
  6. Quartz.NET 学习相关博客
  7. C# 从MongoDB导入数据到mysql
  8. 重磅丨三年沉淀 2018全球人工智能技术大会蓄势待发
  9. Java记录 -59- SortedSet
  10. expect实现自动通过堡垒机登陆