C语言——文件

A1.文件

  • 文件一般是指存储在外部介质上数据的集合
  • 操作系统以文件为单位对数据进行管理的
  • 输入输出是数据传送的过程,数据如流水一样,输入输出流
  • 数据的组织形式和数据文件分为ASCII文件和二级制文件
    • 把内存中的数据按其在内存中的存储形式原样输出磁盘上存放

A2.文件类型指针

  • 不同的c编译系统的FILE类型包含的内容不完全相同,但大同小异
  • 在缓冲文件系统职工,每个被使用的文件都要在内存中开辟——FILE类型的区用于存放文件的有关信息
  • 文件型指针变量
    • FILE *fp;
  • fp是一个指向FILE类型结构体的指针变量,使fp指向某一个文件的结构体变量,从而通过该结构体变量文件信息访问该文件

A3.文件的打开与关闭

  • 打开函数调用:
    • FILE *fp;
    • fp=fopen(文件名,使用文件方式);
  • 关闭函数调用;
    • flose(文件指针);
    • 函数功能;
      • 使文件指针变量不指向该文件,文件指针变量与文件“脱钩”,后不再通过该指针对原来与其联系的文件进行读写操作
    • 返回值;
      • 关闭成功返回值0;否则返回EOF(-1)

A4.字符读写函数:fgetc()和fputc()

  • fputc函数向文件写入一个字符
  • 调用形式:fputc(ch,fp);
  • 函数功能
    • 将字符(ch的值)输入到fp所指向的文件中
  • 返回值
    • 输入成功,则返回值是输出的字符
    • 输入失败,则返回一个EOF
  • fgetc函数从文件读入一个字符
  • 调用形式:ch=fgetc(fp);
  • 函数功能
    • fgetc函数带回一个字符,赋给ch
  • 返回值
    • 在执行fgetc函数读字符时遇到文件结束符,函数返回文件解释标志EOF

A5.字符串读写函数;fgets()和fputs()

  • fgets函数
  • char *fgets(char *str,int n,FILE *fp)
  • 函数功能
    • 从指定的文件读入一个字符
  • 返回值
    • 执行fgets函数成功,返回为str数组首元素的地址
    • 一开始遇到文件尾或读数据出错,返回NULL
  • fputs函数
  • int fputs(const str,FILE *fp)
  • 函数功能
    • fputs函数可以向指定的文件输出一个字符串

A6.格式化读写函数:fscanf()和fprintf()

  • 函数调用:
    • fprintf(文件指针,格式字符串,输出表列)
    • fscanf(文件指针,格式字符串,输入表列)
  • 函数功能
    • 从磁盘文件中读入或输出字符

A7.数据块读写函数

  • 数据块读写函数用二进制方式读写文件
  • 函数调用:
    • fread(buffer,size,count,fp)
    • fwrite(buffer,size,count,fp)
  • 参数说明
  • buffer:指针
    • 对fread来说,是读入数据的存放地址
    • 对fwrite来说,是要输出数据的地址(均指起始地址)
    • size:要读写的字节数
    • count:要进行读写多少size字节的数据项
    • fp:文件型指针
  • 注意
    • 用fprintf和fscanf函数对磁盘文件读写,由于输入时要将ASCII码转换成二进制形式,输出时又要将二进制形式转换成字符,内存和磁盘频繁交换数据情况下,建议用fread和fwrite函数

A8.文件定位

  • 位置指针用来指示当前的读写位置
  • 在对字符文件进行顺序读写时,文件的位置指针指向文件开头,如果需要对文件进行读的操作就读第一个字符,文件位置指针顺序向后移以为,在下次执行读的操作,就将指针指向第二个字符读入
  • 想在一个文件的原有数据之后添加新数据,把文件位置指针移到文件尾,再写入数据,则为文件的追加

A9.位置指针定位函数:fssk

  • 函数功能:
    • 改变文件的位置指针
  • 函数调用形式
    • fssk(文件类型指针,位移量,起始点)
  • 起始点
    • 文件开头 SEEK_SET 0
    • 文件当前位置 SEEK_CUR 1
    • 文件末尾 SEEK_END 2
  • 位移量
    • 以起始点为基点,向前移动的字节数。一般要求long型

A10.求位置指针偏移值函数:ftell()

  • 函数功能
    • 得到流式文件中的当前位置,用相对文件的位移量来表示
  • 返回值
    • 返回当前位置,出错时返回-1L

A11.位置指针复位函数:rewind()

  • 函数功能
    • 使位置指针重新返回文件的开头,此函数没有返回值

A12.出错检查

  1. ferror函数
  • 调用形式
    • ferror(fp)
  • 返回值
    • 返回0,未出错
    • 返回非0,出错
    • 调用一个输入输出函数后立即检查ferror函数的值,否则信息丢失。执行fopen函数时,ferror函数初始值自动置0
  1. clearerr函数
  • 调用形式
    • cleareer(fp)
  • 函数作用
    • 使文件错误标志和文件解释表示置为0
  • 只要出现错误标志,就一直保留,直到对同一文件调用clearerr函数或rewind函数,或其他一个输出输入函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# OpenCvSharp Mat操作-创建Mat-构造函数

🌟 Mat类:图像与多维矩阵的魔法 ✨ Mat类是OpenCvSharp中用于表示图像和多维矩阵的核心类。它提供了多种构造函数来创建和初始化矩阵对象。下面我们逐一解释这些构造函数,并通过示例来说明它们的用法。📸 🚀 默认构造函数 Mat() 创建一个空的Mat对象。 Mat mat = …

基于C#开发web网页管理系统模板流程-主界面统计功能完善

点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 紧接上篇->基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善_c#web程序设计-CSDN博客 统计功能是管理系统很常见的功能,例如仓库管理系统要统计某时间段的出入库以…

QT信号与槽/窗口组件优化/使用QT制作QQ登录界面

使用手动连接,将登录框中的取消按钮使用第二中连接方式,右击转到槽,在该槽函数中,调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中,在槽函数中判断u界面上输入的账号是否为"admin",…

Python量化交易学习——Part7:定制增强型中证红利策略

中证红利指数是一个反映A股市场高红利股票整体状况和走势的指数。它通过选取上海、深圳交易所中现金股息率高、分红比较稳定、具有一定规模及流动性的100只股票作为样本。这个指数的目的是提供一个全面且具有代表性的视角,以观察A股市场中高红利股票的表现。中证红利指数的样本…

永磁同步直线电机(PMLSM)控制与仿真3-永磁同步直线电机数学三环控制整定

文章目录 1、电流环参数整定2、速度环参数整定3、位置环参数整定 写在前面:原本为一篇文章写完了永磁同步直线电机数学模型介绍,永磁同步直线电机数学模型搭建,以及永磁同步直线电机三环参数整定及三环仿真模型搭建,但因为篇幅较长…

HTML前端

html 超文本标记语言 文本&#xff1a;文字字符 超文本&#xff1a;网页内容 标记&#xff1a;标签 标识 提供许多标签&#xff0c;不同标签功能不同&#xff0c;网页就是通过这些标签描述出来的&#xff0c;最终由浏览器解释运行我们看到的网页 <!-- html注释<!DO…

C++ 50 之 继承中的对象模型

继承中的对象模型 在C编译器的内部可以理解为结构体&#xff0c;子类是由父类成员叠加子类新成员而成&#xff1a; #include <iostream> #include <string> using namespace std;class Base03{ public:int m_a; protected:int m_b; private:int m_c; // 哪怕是…

lua对接GPT4实现对话

演示效果&#xff1a; 准备材料&#xff1a; 1、FastWeb网站开发服务&#xff1a;fwlua.com 2、一台服务器 该示例使用开源项目&#xff1a;fastweb 实现。 代码比较简单&#xff0c;主要是两部分&#xff0c;一个lua代码和一个html页面&#xff0c;用来用户发起请求和后台…

面向事件编程之观察者模式

前言 村里的老人常说&#xff1a;真男人就该懂得遵守“三不原则”——不主动、不拒绝、不负责。 一个复杂的软件系统&#xff0c;其中必然会存在各种各样的“对象”&#xff0c;如果在设计之初没有注意控制好耦合度&#xff0c;导致各个对象甚至是函数之间高度耦合&#xff0…

无人机的力量——在民用方面的应用

无人机在民用方面的应用广泛且多样化&#xff0c;以下是对其应用的详细介绍&#xff1a; 影视航拍&#xff1a; 无人机航拍影像具有高清晰、大比例尺、小面积、高视角的优点&#xff0c;特别适合获取带状地区航拍影像&#xff08;如公路、铁路、河流、水库、海岸线等&#xff…

C#面:简述 private、 protected、 public、 internal 修饰符的访问权限 ?

private修饰符表示成员只能在当前类中访问。这意味着私有成员对于类的外部是不可见的。私有成员通常用于封装类的内部实现细节&#xff0c;以确保数据的安全性和一致性。 protected修饰符表示成员可以在当前类和派生类中访问。这意味着受保护的成员对于类的外部是不可见的&…

网络安全知识全景地图V1.0 - 20240616更新

网络安全领域的知识全景涵盖了从基础概念到高级技术的广泛内容。博主基于自身十年多的工作经验结合CISSP认证官方教材按照不同的主题和层次梳理出如下高层次的概览地图&#xff0c;可以帮助个人和组织理解网络安全领域的主题。 1.1. 基础理论 1.1.1. 网络安全概述 网络安全的…

React@16.x(29)useRef

目录 1&#xff0c;介绍2&#xff0c;和 React.createRef() 的区别3&#xff0c;计时器的问题 目前来说&#xff0c;因为函数组件每次触发更新时&#xff0c;都会重新运行。无法像类组件一样让一些内容保持不变。 所以才出现了各种 HOOK 函数&#xff1a;useState&#xff0c;u…

Camtasia Studio 2024软件最新版下载【安装详细图文教程】

​Camtasia是美国TechSmith公司出品的一款集电脑屏幕录制、视频剪辑为一体的软件套装。同时包含Camtasia 录制器、Camtasia Studio&#xff08;编辑器&#xff09;、Camtasia 菜单制作器、Camtasia 剧场、Camtasia 播放器和Screencast的内置功能。 安 装 包 获 取 地 址&#x…

AirPlay技术规范及认证资讯

AirPlay是Apple开发的一种无线技术&#xff0c;允许用户将音频、视频或图片从iOS设备、Mac电脑或其他支持AirPlay的设备无线传输到支持AirPlay的接收器设备上&#xff0c;例如智能电视或音响系统。这项技术基于Wi-Fi网络&#xff0c;提供了一种便捷的方式来共享媒体内容。AirPl…

Java 数据结构:栈和队列

Java 数据结构&#xff1a;栈和队列 在软件开发中&#xff0c;数据结构是组织和管理数据的基础。掌握常见的数据结构如栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;&#xff0c;能够帮助我们编写出更高效且结构清晰的代码。本文将深入探讨这两种数据结…

c++_0基础_讲解3 输入 输出

cin与cout C是一种通用的编程语言&#xff0c;支持面向对象编程。它是由Bjarne Stroustrup在1983年创建的&#xff0c;是C语言的一个扩展&#xff0c;为程序员提供了更多的功能和更高的抽象级别。 在C中&#xff0c;输入和输出是非常重要的操作&#xff0c;常用的输入操作是使…

车票信息的请求与显示

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 1 发送与分析车票信息的查询请求 得到了获取车票信息的网络请求地址&#xff0c;然后又分析出请求地址的必要参数以及车站名称转换的文件&#xff…

如何用Windows api查找标题相似的所有窗口句柄VB6

在 VB6 中&#xff0c;可以使用 FindWindow API 函数来查找窗口句柄。这个函数接受两个参数&#xff0c;一个是窗口类名&#xff0c;另一个是窗口标题。如果你只知道窗口标题的一部分或者想查找标题相似的所有窗口&#xff0c;可以使用通配符来进行模糊匹配。 在 VB6 中&#…

《软件测试52讲》——测试基础知识篇

1 你真的懂测试吗&#xff1f;从“用户登录”测试谈起 从“用户登录”测试谈起&#xff0c;“用户登录”功能作为测试对象 作为测试工程师&#xff0c;你的目标是要保证系统在各种应用场景下的功能是符合设计要求的&#xff0c;所以你需要考虑的测试用例就需要更多、更全面。 …