首先讲解 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. cad等比例缩放快捷键_「CAD」利用块对图形进行非等比例缩放
  2. CentOS7.5(64位)安装Anaconda
  3. 算法笔记之分支限界法
  4. 《暗时间》的笔记-我在南大的七年
  5. 【Python基础】Python 10 个习惯用法,看看你都知道不?
  6. Windows2003不认3G以上内存时可以看看此文
  7. select默认下拉箭头改变、option样式清除
  8. python 类初始化参数校验_如何规避python参数的初始化次数?
  9. 华为java8_Java8 Stream
  10. Ubuntu日志的一些笔记
  11. 域渗透——Local Administrator Password Solution
  12. Alibaba之MySQL宝典_Alibaba之MySQL宝典流出!极致经典,堪称行业天花板
  13. 300 万行核心代码全部开源!OceanBase 开启 3.0 时代
  14. Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂[转]
  15. java初级面试总结
  16. 解密:fotona4d有什么功效,欧洲之星做一次能保持多久
  17. 透明OLED显示器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. 玉渊潭赏樱花有感:从无到有写一个jQuery开源插件
  19. GoGoCode 代码语言转换
  20. MyBatis级联查询

热门文章

  1. 没有计算机基础可以学python-学习第一天day1(计算机基础,及python基础)
  2. 千行代码入门python-要学 Python 需要怎样的基础?
  3. c语言gettext的头文件,C语言中用GNU gettext实现本地化
  4. bootstrap的依赖_这五款超好用的Bootstrap扩展,让你的Web开发事半功倍
  5. cimco edit v5_iA Writer for Mac(写作软件)v5.6.3
  6. 【MYSQL快速入门】牛客网:多表查询
  7. TortoiseSVN图标介绍
  8. IDEA修改SVN地址
  9. 【CCCC】L3-012 水果忍者 (30分),,枚举斜率
  10. 【CCCC】L3-007 天梯地图 (30分),两次Dijkstra+路径打印(数据点2,4错因),90行最短题解