为什么使用文件?
当我们在编写一个项目的时候,自然而然想到要把之前写入的数据保存起来。而只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。此处我们就讲到如何将数据放入到磁盘文件当中。
文件的定义
文件就是电脑上c盘内存储的东西,c盘一般为系统盘,根据文件的功能可以分为程序文件和数据文件。例如后缀为 .txt .cpp .ppt .jpg这都是不同形式的文件。
C语言中的文件操做使用细则
#include<stdio.h>
int main() {
FILE* fp = fopen("1.txt", "w");
}
FILE 是一个结构体
这是他的结构体构成
fopen是打开文件操作 ,其中的参数是fopen("文件名.后缀","打开方式“)
其中打开方式分 文本文件和二进制文件
文本文件 | 二进制文件 |
r 读 | rb 读 |
w 写 | wb 写 |
然后还有几个特殊形式
r+(可读可写) | 读取文件时如果文件不存在就会显示打开失败 文件存在是会覆盖原有文件内容 |
w+(可读可写) | 读取文件时如果文件存在,就会覆盖原有文件 读取时文件如果文件不存在,就会新建一个文件执行写操作 |
a+(可读可写) | 文件不存在,就会创建一个新文件,如果存在,光标就会移动到文件尾部。 |
#include<stdio.h>
#include<string.h>
int main() {
FILE* fp = fopen("1.txt", "w");
char *buffer = { 0 };
fread(buffer, sizeof(char), strlen(buffer), fp);
fwrite(buffer, sizeof(char), strlen(buffer), fp);
fclose(fp);
fp = NULL;
}
这就是关于文件的基本操作
fread的含义时说讲fp中的内容读给buffer
参数是fread(buffer,size,count,fp)
buffer是一个自定义的数组
size是fp中储存的大小
count是要读取或者写入的个数
fp是FILE* 型的指针变量
我们可以在c盘中中创建一个1.txt
然后用函数往里面写入
如果此时d盘中有1.txt文件,那么这个函数段就可以读取1.txt的内容通过num 返回读取到的个数
如果此时d盘中没有1.txt那么就会显示读取失败
数据存储
在使用文件操作前 ,我们要提前了解关于计算机储存数据的相关知识,操作系统储存数据一般是以文件为单位对数据进行管理,在从键盘获取数据到存入内存中,中间会有一段缓冲区,在用户从磁盘中查找数据时,就会先在缓冲区查找,如果查找不到才会进入磁盘中查找
这里就涉及到了一种计算机的内存管理技术——虚拟内存
https://blog.csdn.net/iccoke/article/details/126139059?spm=1001.2014.3001.5501
虚拟内存拥有一段连续的内存空间,实际是由数据割成多个内存碎片
当我们出入数据时
其中 c:/1.txt 叫做绝对路径
这里面也有用空间换取时间的便利