如何将vs做的网站备份出来6,绍兴网站开发公司,wordpress mu 博客群,如何利用模板建站Hi~#xff01;这里是奋斗的小羊#xff0c;很荣幸您能阅读我的文章#xff0c;诚请评论指点#xff0c;欢迎欢迎 ~~ #x1f4a5;#x1f4a5;个人主页#xff1a;奋斗的小羊 #x1f4a5;#x1f4a5;所属专栏#xff1a;C语言 #x1f680;本系列文章为个人学习… Hi~这里是奋斗的小羊很荣幸您能阅读我的文章诚请评论指点欢迎欢迎 ~~ 个人主页奋斗的小羊 所属专栏C语言 本系列文章为个人学习笔记在这里撰写成文一为巩固知识二为展示我的学习过程及理解。文笔、排版拙劣望见谅。 目录 前言一、文件的定义1.1 什么是文件1.2 二进制文件和文本文件 二、文件的打开和关闭2.1 流和标准流2.11 流2.12 标准流 2.2 文件指针2.3 文件的打开和关闭2.31 fopen 和 fclose2.32 文件在当前的工程目录底下2.33 文件在当前工程目录底下的上一级路径2.34 文件不在当前工程目录底下 总结 前言
我们写的程序的数据存储在电脑的内存中如果没有文件当程序退出的时候内存会回收那数据就丢失了等再次运行程序是看不到上次程序的数据的如果要将数据进行持久化的保存我们就要使用文件。 一、文件的定义
1.1 什么是文件
按文件的功能分类文件分为程序文件和数据文件文件是存在磁盘硬盘上的。
程序文件源程序文件后缀为.c目标文件windows环境后缀为.obj可执行程序windows环境后缀为.exe 数据文件文件的内容不一定是程序而是程序运行时读写的数据比如程序运行需要从中读取数据的文件或者输出内容的文件
本篇文章讨论的是数据文件。 以前我们所处理数据的输入输出都是以终端为对象的即从终端的键盘输入数据运行结果显示到屏幕上。其实有时候我们会把信息输出到磁盘上当需要的时候再从磁盘上把数据读取到内存中使用这里处理的就是磁盘上的文件。
标识文件——文件名 一个文件要有一个唯一的文件标识也就是文件名 文件名包含三部分文件路径文件名主干文件后缀如c:\code\test.txt 1.2 二进制文件和文本文件
按文件的内容分类数据文件又分为二进制文件和文本文件
数据在内存中以二进制的形式存储如果不加转换的输出到外存的文件中就是二进制文件 如果要求在外存上以ASCII码的形式存储则需要在存储前转换以ASCII字符的形式存储的文件就是文本文件
一个数据在文件中是怎么存储的呢 字符只能以ASCII码的形式存储数值型数据既可以用ASCII码的形式存储也可以使用二进制形式存储
比如数字10000在内存中整型10000是以补码的形式存的如果以ASCII码形式输出到磁盘则磁盘中占用5个字节每个字符占用一个字节如果以二进制形式输出则在磁盘中占用4个字节 二、文件的打开和关闭
2.1 流和标准流
2.11 流
我们程序的数据需要输出到各种外部设备也需要从外部设备获取数据不同的外部设备的输入输出操作各不相同为了方便程序员对各种设备进行操作我们抽象出了流的概念我们可以把流想象成流淌着字符的河。
C程序针对文件、画面、键盘等的数据输入输出操作都是通过流实现的一般情况下我们要想向流里写数据或读数据都是要打开流然后操作。 2.12 标准流
以前我们在键盘上输入数据在屏幕上输出数据怎么没有打开流呢 因为C语言程序在启动的时候默认打开了下面这3个流
stdin标准输入流在大多数环境中从键盘输入scanf函数就是从标准输入流中读取数据stdout标准输出流大多数环境中输出到显示器界面printf函数就是将信息输出到标准输出流中stderr标准错误流大多数环境中输出到显示器界面
stdin、stdout、stderr三个流的类型是FILE *通常称为文件指针C语言中就是通过FILE *的文件指针来维护流的各种操作 2.2 文件指针
缓冲文件系统中关键的概念是“文件类型指针”简称文件指针 每个被使用的文件都在内存中开辟了一个相应的文件信息区用来存放文件的相关信息如文件名文件状态、文件位置等这些信息是保存在一个结构体变量中的该结构体类型是由系统声明的取名FILE。
不同的C编译器的FILE类型包含的内容不完全相同但是大同小异 每当打开一个文件的时候系统会根据文件的情况自动创建一个FILE类型的变量并填充其中的信息使用者不必关心细节 一般都是通过一个FILE的指针来维护这个FILE结构的变量这样使用起来更加方便 例如创建一个FILE *的指针变量 FILE* pf;//文件指针变量pf是一个指向FILE类型数据的指针变量可以使pf指向某个文件的文件信息区是一个结构体变量通过该文件信息区中的信息就能够访问该文件也就是说通过文件指针变量能够间接找到与他关联的文件 文件在硬盘上文件信息区在内存中 2.3 文件的打开和关闭
2.31 fopen 和 fclose
文件在读写之前应该先打开文件在使用结束之后应该关闭文件 在编写程序的时候在打开文件的同时都会返回一个FILE *类型的指针变量指向该文件也相当于建立了指针和文件的关系 ANSI C规定使用fopen函数来打开文件fclose函数来关闭文件 函数fopen和fclose在头文件stdio.h中定义
//打开文件
FILE *fopen( const char *filename, const char *mode );//关闭文件
int fclose( FILE *stream );mode表示文件的打开模式下面是文件的常见打开模式 2.32 文件在当前的工程目录底下
开始时当前工程目录底下没有test.txt这个文件
运行下面的代码
#include stdio.hint main()
{//打开文件//成功返回有效指针失败返回NULLFILE* pf fopen(test.txt, w);if (pf NULL){perror(fopen);return 1;}//写文件//关闭文件fclose(pf);pf NULL;return 0;
}在运行上面的代码前我们的文件夹中是没有test.txt这个文件的当我们运行结束后文件夹中就出现了这么一个文件并且大小为0 2.33 文件在当前工程目录底下的上一级路径
如果fopen函数操作的文件不在当前工程目录底下我们需要在文件的前面加上文件位置如果有转义字符需要用转义转义字符‘\’处理
假如我们就在当前工程目录底下的上一级路径下创建一个文件里面存入一些数据
运行下面的代码
#include stdio.hint main()
{//打开文件//成功返回有效指针失败返回NULLFILE* pf fopen(.\\..\\test.txt, w);// 相对路径//. 表示当前路径//.. 表示上一级路径if (pf NULL){perror(fopen);return 1;}//写文件//关闭文件fclose(pf);pf NULL;return 0;
}可以看到文本内容消失大小为0 2.34 文件不在当前工程目录底下
如果fopen函数操作的文件不在当前工程目录底下我们需要在文件的前面加上文件位置如果有转义字符需要用转义转义字符‘\’处理
我们先在桌面上创建一个文本文档写入一些数据保存
运行下面的代码
#include stdio.hint main()
{//打开文件//成功返回有效指针失败返回NULLFILE* pf fopen(C:\\Users\\86181\\Desktop\\test.txt, w);// 绝对路径if (pf NULL){perror(fopen);return 1;}//写文件//关闭文件fclose(pf);pf NULL;return 0;
}查看桌面上的文本文档发现里面的内容已经被清空 总结 本篇文章介绍了为什么要有文件文件的定义文件的大致分类流的概念以及至关重要的文件指针通过文件指针对文件的打开和关闭还有当文件在不同路径下如何操作文件等等通过本文我们对文件有了基本的认识下篇文章将继续探讨