当前位置: 首页 > news >正文

文件操作(上)

目录

文件的必要性:

文件分类:

程序文件:

数据文件:

文件的打开与关闭:

fopen函数分析:

​编辑

FILE*:

char*filename:

char*mode:

fclose函数:

应用:

文件编译

Fgetc

Fputc

应用:

下期预告:


文件的必要性:

当我们想要将所写的数据在程序运行结束后继续保存时,这时我们就要将其保存在磁盘文件中。

因此文件的创建与操作在我们后期的学习当中必不可少。

文件分类:

在我们的程序设计中我们一般将文件分为两类:程序文件和数据文件

程序文件:

包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境 后缀为.exe)

数据文件:

文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件, 或者输出内容的文件。例如 .txt文件

注意:这些仅作了解,接下来我们讲述文件的打开与读写。


文件的打开与关闭:

这里我们需要了解fopen和fclose这两函数以及FILE*这一文件指针类型

fopen函数分析:

FILE*:

我们在对文件进行操作时是依靠文件的指针对其进行定位操作,“FILE*”这一指针类型就是表示指向某一文件路径的指针。每当我们用fopen打开文件时,如果打开成功fopen会将文件的路径以FILE*指针类型返回,这里我们将其理解为一种指针类型即可。

char*filename:

需要打开的文件名,这里需要用“ ”双引号进行标记。

char*mode:

打开文件后将要执行的操作,这里的操作字符已经被规定好了,我们进行选择就可以了

"r"读取一个文件,如果文件不存在则打开失败
"w"写入一个文件,如果文件不存在则创建一个该名称的文件
"a"在文件末尾进行追加写入,如果文件不存在则创建一个该名称的文件
"r+"同时用于读取和写入文件,如果文件不存在则打开失败
"w+"同时用于读取和写入文件,如果文件不存在则创建一个该名称的文件
"a+"在文件末尾进行追加写入和读取,如果文件不存在则创建一个该名称的文件

fclose函数:

这里关闭文件只需要将fopen返回的文件指针放入就可以了,记住打开文件之后不要忘了关闭文件!


应用:

int main()
{FILE* p1 = fopen("test.txt", "w");fclose(p1);return 0;
}

这里会在该文件目录下创建一个test.txt文件当我们知道如何打开文件后,就需要对文件中的内容进行编译

文件编译

了解文件打开与关闭后,我们就需要对文件的内容进行编译。

这里我们需要了解新的函数:


Fgetc

该函数读取文件的一个字符,如果读取成功将返回该字符的 int 类型值,并将光标移动一位。

如果读取失败或者到文件末尾将返回EOF。


Fputc

int character :想要录入文件的字符

FILE*stream:文件地址

注意:该函数一次只能放入一个字符

应用:

int main()
{FILE* p1 = fopen("test.txt", "w+");fputc('a', p1);fclose(p1);FILE* p2 = fopen("test.txt", "r");int m = fgetc(p2);printf("m=%d\n", m);fclose(p2);return 0;
}

下期预告:

利用本文章函数进行文本复制!
http://www.lryc.cn/news/285423.html

相关文章:

  • 用CHAT写年终总结
  • day01 深度学习介绍
  • k8s 部署 Nginx 并代理到tomcat
  • 医学图像的数据增强技术 --- 切割-拼接数据增强(CS-DA)
  • git克隆/拉取报错过早的文件结束符(EOF)的原因及解决
  • 【ARM 嵌入式 编译系列 2.5 -- GCC 编译参数学习 --specs=nano.specs选项 】
  • C语言大师(5)构造函数和析构函数
  • 安全审查常见要求
  • 最新 生成pdf文字和表格
  • 安全基础~攻防特性3
  • Windows7关闭谷歌浏览器提示“若要接收后续 Google Chrome 更新,您需使用 Windows 10 或更高版本”的方法
  • [一]ffmpeg音视频解码
  • k8s-认证授权 14
  • 在全志H616核桃派上实现USB摄像头的OpenCV颜色检测
  • mac安装部署gitbook教程
  • 有关软件测试的,任何时间都可以,软件测试主要服务项目:测试用例 报告 计划
  • 快乐过寒假,安全不放假
  • qt学习:模仿qq界面+添加资源+无边框界面+修改样式
  • 【Linux】基本指令收尾
  • 精准核酸检测 - 华为OD统一考试
  • LINUX文件fd(file descriptor)文件描述符
  • SpringMVC 的理解
  • SpringBoot 3.1.7 集成Sentinel
  • Elastic Stack 8.12:通过对 ES|QL 等的改进增强了向量搜索
  • 结构体的内存对齐(计算题常考点)
  • 设置Json对象输出字段顺序
  • 当 OpenTelemetry 遇上阿里云 Prometheus
  • 【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source)
  • 【蓝桥杯EDA设计与开发】资料汇总以及立创EDA及PCB相关技术资料汇总(持续更新)
  • JavaEE学习笔记 2024-1-18 --模块化Controller层、AJAX与JSON