C语言进阶学习日志:文件操作函数 及 使用(一)

简介: C语言进阶学习日志:文件操作函数 及 使用

为什么要文件操作:

因为我们每次运行自己写得程序的时候 录入数据结束的时候 这些数据就销毁了 当我们还想再回来查找我们之前保存的那些数据时候 就找不到了,这样我们数据的长久性就得不到保证所以就有了文件的操作来保证数据的长久性 使数据存储我们电脑的硬盘上

一般来讲程序设计我们说的文件主要分为程序文件 和 数据文件


程序文件:

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

eff74a51f2e3487cb7188bff41b28498.png 这里的.c文件就是源程序文件 在我们编译了之后 我们这个文件就会有个debug文件夹

6ee700b5427c497c820d6a85ba8980d6.png

 点开debug文件 里面 有可执行程序(.exe)和目标文件(.obj)

d3bd31bb8a56409eaed3878fa7c2decc.png

目标文件会通过链接生成可执行程序


数据文件:

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

614351a4fb204d5094ab519df2ba277b.png

额外给大家提一个东西就是文件名:一个要有一个唯一的文件标识,以便用户识别使用

文件名包括:文件路径+文件名主干+文件后缀


文件指针:

每个被使用的文件都在内存中开辟了一个对应的文件信息区,用来存放文件的相关信息(文件的名字 文件所在的位置)这些信息保存在一个结构体变量中 该结构体类型是具有系统声明的 取名 FILE (注意不同的编译齐FILE中所包含的信息不同)


文件的打开和关闭:

我们肯定在要使用一个文件的时候 往这个文件里面写入数据的时候 是要把这个文件打开的 打开后才能往里面写入数据的 同样的道理在使用完之后我们是要把这个文件关闭的

这里就要用到fopen 和 fclose 函数

20bc7e9e99654ff798c606c9a894c8a5.png


第一个参数是你要打开的文件名 第二个参数是你打开这个文件的方式 返回的是这个文件对应文件信息区的地址

83cf16fbe2f94180b4c2fe355cac95c6.png

这些是不同打开方式所对应的符号:

"r" :打开文件来读取 如果这个文件不存在或者没有找到那么打开文件失败(返回NULL)

"w":打开一个空的文件用来写入数据 如果打开的文件存在 那么打开的文件里面的内容会被清楚掉 如果这个文件不存在那么会自动创建一个文件

如果说你打开的文件不在你这个程序所在的文件夹那么你打开的文件前面就要加上这个文件的路径

#include <stdio.h>
int main()
{
    FILE* p= fopen("test.txt","w");
    FIlE* p= fopen("D:\\VSC\\test.txt","w");注意\要用双斜杠 避免单斜杠与后面结合变成转义字符
}


其实除了上面的符号 关于文件使用方式的符号还有很多:>

a7778fb057ec4b9e8ab577668cff396c.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
19小时前
|
存储 C语言
C语言进阶---------作业复习
C语言进阶---------作业复习
|
19小时前
|
存储 Linux C语言
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-2
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
19小时前
|
自然语言处理 Linux 编译器
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-1
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
21小时前
|
存储 C语言
C语言进阶第十课 --------文件的操作-2
C语言进阶第十课 --------文件的操作
|
21小时前
|
存储 编译器 C语言
C语言进阶第十课 --------文件的操作-1
C语言进阶第十课 --------文件的操作
|
1天前
|
存储 程序员 C语言
C语言进阶第九课 --------动态内存管理-2
C语言进阶第九课 --------动态内存管理
|
1天前
|
编译器 C语言
C语言进阶第九课 --------动态内存管理-1
C语言进阶第九课 --------动态内存管理
|
1天前
|
C语言
C语言进阶第八课 --------通讯录的实现
C语言进阶第八课 --------通讯录的实现
|
1天前
|
SQL 监控 关系型数据库
【MySQL学习】MySQL的慢查询日志和错误日志
【MySQL学习】MySQL的慢查询日志和错误日志
|
2天前
|
存储 程序员 编译器
【C语言】文件操作详解
【C语言】文件操作详解