123883网站,自己做一个购物网站,网站开发是前端开发吗,如何查询百度搜索关键词排名文件的打开-fopen
函数介绍
文件的打开方式
相对路径与绝对路径
文件关闭函数fclose
文件操作的正确流程
函数的介绍 文件的打开形式 相对路径与绝对路径 文件的关闭函数-fclose 正确的文件操作的流程 前言 通过前面的章节我们已经知道文件的基本的概念#xff0c;我们如…文件的打开-fopen
函数介绍
文件的打开方式
相对路径与绝对路径
文件关闭函数fclose
文件操作的正确流程
函数的介绍 文件的打开形式 相对路径与绝对路径 文件的关闭函数-fclose 正确的文件操作的流程 前言 通过前面的章节我们已经知道文件的基本的概念我们如何通过代码对文件进行操作呢比如我们如何打开文件关闭文件已经在文件中写入以及读取数据呢 在头文件stdio.h中包含了一系列的文件操作函数以便我们对特定的文件进行相应的操作。学会对文件进行操作后我们就可以将代码与文件联系起来这样能让编程变得更有意思不是吗比如你可以用代码写一个游戏当游戏结束后可以将游戏当前的数据保存到一个文件中那么当你下一次运行代码时只要先读取该文件中的数据就可以接着上一次的游戏进度继续玩而不至于从头再来。
下面介绍了打开以及关闭文件的操作函数以及其中的一些细节。 文件打开函数–fopen 函数的介绍
FILE * fopen ( const char * filename, const char * mode );该函数的功能就是打开一个文件函数的第一个参数是你要打开的文件的文件名第二个参数是打开这个文件的形式。
我们知道打开一个文件时系统会为该文件创建一个文件信息区该函数调用完毕后如果打开该文件成功那么返回指向该文件信息区的指针(FILE*类型)如果打开文件失败那么返回一个空指针(NULL)。 打开方式如下 使用上面的模式说明符文件将作为文本文件打开。为了将文件作为二进制文件打开模式字符串中必须包含“b”字符。这个附加的“b”字符可以附加在字符串的末尾从而形成以下复合模式“rb”、“wb”、“ab”、“rb”、“wb”、“ab”也可以插入在“”符号之前“rb”、“wb”、“ab”。
如果序列后面有其他字符则行为取决于库实现一些实现可能会忽略其他字符例如接受额外的“t”有时用于显式表示文本文件。
在某些库实现中使用更新模式打开或创建文本文件可能会视为二进制文件。
举个几个例子 1.若我们要以文本形式打开一个名叫test.txt的文件将要对其进行输入操作那么打开文件时应该这样写
FILE* pf fopen(test.txt, r);该文件必须存在否则会返回空指针。 2.若我们要以二进制打开一个名叫test.txt的文件将要对其进行输出操作那么打开文件时应该这样写
FILE* pf fopen(test.txt, wb);注意一点就是如果该文件不存在则将会自己创建一个名叫test.txt的文件。 二、检测fopen返回值的有效性 前面说到如果文件打开成功fopen函数会返回指向文件信息区的指针否则fopen函数会返回一个空指针。所以当使用接收fopen函数的返回值的指针前我们必须检测其有效性否则可能非法访问内存。 检测有效性
int main()
{FILE* pf fopen(test.txt, r);if (NULL pf){perror(fopen);return 1;}return 0;
}文件的相对路径与绝对路径
填写fopen函数的第一个参数的时候如果我们要打开的文件与我们正在运行的源代码在同级目录下以打开text.txt文件为例那么我们应该这样写
FILE* pf fopen(test.txt, r);但是如果打开的文件与当前运行的文件不在同一个目录内我们分为相对路径和绝对路径。 一相对路径 当待打开的文件位于正在运行的源代码的上一级时
FILE* pf fopen(../test.txt, r);当待打开的文件位于正在运行的源代码上上级的时候
FILE* pf fopen(../../test.txt, r);当待打开的文件位于正在运行的源代码下一级的时候
FILE* pf fopen(debug/test.txt, r);注意的是这里的test文件位于debug内debug文件与正在运行的源代码在同级目录下。 总结 要打开上级的文件在原来的基础上加上. ./“再上一级再加一个”. ./以此类推。 要打开下级的文件就需从源代码这一级开始写出目标文件的路径。 二、绝对路径 有博友可能觉得相对路径的方法比较麻烦可能还要去数目标文件与源文件相差的级数绝对路径就没那么麻烦了绝对路径就直接写出目标文件的完整路径即可例如
FILE* pf fopen(D:\\code\\File_function\\File_function\\data.txt, r);文件关闭函数 - fclose 与动态开辟内存空间时一样当我们打开文件时会在内存中开辟一块空间如果我们打开该文件后不关闭那么这个空间会一直存在一直占用那块内存空间所以当我们对一个文件的操作结束时一定要记住将该文件关闭。这就需要用到fclose函数来关闭文件。
int fclose ( FILE * stream )我们如果要关闭一个文件那么直接将该文件的文件指针传入fclose函数即可fclose函数如果关闭文件成功会返回0。与free函数一样当我们调用完fclose函数将文件关闭后我们也要将指向文件信息区的指针置空避免该指针变成野指针。 文件操作正确流程 知道了如何打开文件和关闭文件也就相当于知道了如何进入和如何出去所以当我们要对一个文件进行操作的时候正确的流程应该是这样的
int main()
{FILE* pf fopen(test.txt, r);if (NULL pf){perror(fopen);return 1;}//对文件的一系列操作//关闭文件fclose(pf);pf NULL;return 0;
}