首先讲解 c 语言中文件操作的两个关键函数:fread()、fwrite()

1. fread( buffer , size , count , fp)

该函数实现从 fp 所指的文件中读入 count 次,每次读 size 字节,读入的信息存在 buffer 中。

2. fwrite( buffer , size ,count , fp)

该函数实现将 buffer 地址开始的信息,输出 count 次,每次写 size 字节到 fp所指的文件中。

接下俩看程序实例:

我们首先定义一个学生类型的结构体,通过键盘输入学生的基本信息,保存到指定磁盘文件中,输入全部信息后,我们将保存在磁盘文件中的信息读出并显示在屏幕上。

/*
成块读写操作
核心通过函数fwrite()函数和fread()函数实现
本程序实现将多组块数据写入文件,之后从文件中读出
*/
#include <stdio.h>
#include <stdlib.h>//定义结构体类型数组
struct student_score{char name[10];int num;int China;int Math;int English;
}score[100];//函数save()将输入的数据输出到指定的磁盘文件中
//name指向文件名 n表示信息个数
void save(char * name,int n){FILE * fp;int i;if((fp=fopen(name,"wb"))==NULL){  //以只写方式打开指定文件printf("cannot open file\n");exit(0);}for(i=0;i<n;++i){//将一组数据输出到fp所指向的文件中if(fwrite(&score[i],sizeof(struct student_score),1,fp)!=1){printf("file write error\n");}}fclose(fp);  //关闭文件
}//函数show()从指定的文件中读入一组数据并显示在屏幕上
//name指向文件名,n表示信息个数
void show(char * name,int n){int i;FILE * fp;if((fp=fopen(name,"rb"))==NULL){  //若打开文件失败printf("cannot open file\n");exit(0);}for(i=0;i<n;++i){//从fp所指文件中读入数据存到数组score中fread(&score[i],sizeof(struct student_score),1,fp);printf("%-10s%4d%4d%4d%4d\n",score[i].name,score[i].num,score[i].China,score[i].Math,score[i].English);}fclose(fp);
}int main()
{int i,n;char filename[50];printf("How many students in your class ? \n");scanf("%d",&n);printf("Please input the file name :\n");scanf("%s",filename);printf("Please input name, number, China, Math, English : \n");for(i=0;i<n;++i){printf("No%d\n",i+1);scanf("%s%d%d%d%d",score[i].name,&score[i].num,&score[i].China,&score[i].Math,&score[i].English);save(filename,n);  //调用save()函数将输入的数据保存到文件}show(filename,n);  //调用show()函数显示学生信息return 0;
}

C语言实现成块数据读写操作 fread() fwrite()相关推荐

  1. linux C语言 对本地文件进行读写操作

    linux C语言 对本地文件进行最简单读写操作 读取json文件 保存json文件 读取json文件 对本地以cjson格式保存的文本进行读取 /* 读取json文件 */ const char* ...

  2. sbit在c语言中的作用,C语言中对引的读写操作 sbit的三种用法

    描述 在C语言里.如果直接写P1.O,C编译器并不能识别,而且P1.O也不是一个合法的C语言变量名,所以得给它另起一个名字,比如起名为P1-0,可是P1-0是不是就是P10呢? 可以这么认为,C编译器 ...

  3. 趣学 C 语言(七)—— 文件读写操作

    (1)rewind:函数把文件内部位置指针移到文件首: (2)fseek:移动文件流的读写位置: 1. 字符读写函数 :fgetc和fputc 在fgetc函数调用中,读取的文件必须是以读或读写方式打 ...

  4. C语言中对文件的读写操作

    编写程序,实现输入10个数,将这10个数按照从小到大的顺序排列,并将写入data.txt文件中 #include <stdio.h> #include <string.h>in ...

  5. C语言文件读写操作详解

    C语言/C++中文帮助文档免积分下载(点击跳转) 当文件按指定的工作方式打开以后,就可以执行对文件的读和写.下面按文件的性质分类进行操作.针对文本文件和二进制文件的不同性质,对文本文件来说,可按字符读 ...

  6. linux gcc编译下的文件读写操作

    linux下的文件操作 所有目录             1.文件及文件系统的定义             2.linux文件的类型             3.linux文件的权限          ...

  7. C++ OpenCV视频摄像头图片读写操作

    总结一下C++语言下OpenCV的基本读写操作. 头文件导入和CMakeLists.txt #include<opencv2/opencv.hpp> #include<iostrea ...

  8. C语言文件读写操作主要函数及其用例

    C语言把磁盘文件看成是字符(或字节)的序列,按照存储信息的形式来说,文件主要是有文本文件和二进制文件.文本文件由一个个字符组成,每个字节存放一个ASCII码制,代表一个字符.二进制文件把内存中的数据按 ...

  9. C语言中文件读写方式r 的作用,C语言文件读写操作主要函数及其用例

    C语言把磁盘文件看成是字符(或字节)的序列,按照存储信息的形式来说,文件主要是有文本文件和二进制文件.文本文件由一个个字符组成,每个字节存放一个ASCII码制,代表一个字符.二进制文件把内存中的数据按 ...

最新文章

  1. 发布一个嘿嘿嘿的技术方案 —— 商用群发p2p网络
  2. css揭秘笔记——用户体验
  3. BRCM5.02编译四: ERROR: lzo/lzo1x.h development library is required for build
  4. 文明重启服务器维护怎么卡进去,文明重启更新之后进不去,具体玩法介绍
  5. NTC3950-10K温度传感器
  6. DAYDREAM和VIVE平台的框架API
  7. We want to do better without being distracted
  8. autotools 学习
  9. 软件测试基础—易用性测试
  10. 计算机质量检测技术,计算机技术在建材质量检测中的应用分析
  11. 图书期刊信息管理系统c语言,基于C语言的图书馆管理系统.doc
  12. 论文开题报告怎么写?
  13. 「GoTeam 招聘时间」滴滴出行系统研发工程师(北京)
  14. jekyll部署到服务器
  15. 设计师悲剧:你一天内要完成100张海报
  16. windows10只显示图标不显示缩略图
  17. 在Unity上实现目标识别
  18. 人脸检测-ROI与泛洪填充(5)
  19. hive的列分隔符和行分隔符的使用
  20. 你小子,又在偷偷学this指向

热门文章

  1. python语言-python语言基本语句用法总结
  2. java volatile 原子性_Java并发编程之验证volatile不能保证原子性
  3. FFMPEG结构体分析:AVFrame
  4. Helm 3 完整教程(二十三):使用 Files 方法在模板中读取文件内容
  5. 锐捷linux上网教程,校园网Ubuntu锐捷(myxrgsu)安装联网方法
  6. freemarker如何判空容错
  7. 【LOJ10050】The XOR Largest Pair(字典树)
  8. java 获取 t 的类型_如何获取类型为T的字段的类?
  9. 第一章节 c#面向对象
  10. Python入门--函数的参数总结