前言

本文主要介绍C语言中文件操作的相关内容(例:文件读、写等相关函数)。


一、文件

在对计算机的使用中我们几乎离不开文件。例如常见的有word 文档,txt文本文件,图片文件、音频文件等。

1.什么是文件?

文件是以计算机硬盘为载体存储计算机上的信息集合。是数据源的一种,最主要的作用是保存数据。

在程序设计中,我们可将文件分为两大类:程序文件数据文件

(1)程序文件

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

(2)数据文件

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

2.文件名

文件名是文件存在的标识,操作系统根据文件名来对其进行控制和管理。每个文件都被设定一个指定的名称,由文件主名和扩展名组成。

即:一个文件要有一个唯一的文件标识,以便用户识别和引用。
文件名包含三个部分:文件路径+文件名主干+文件后缀
例:D:\Windows Kits\10\Lib\test.txt
在这里插入图片描述


二、文件的打开和关闭

1.文件指针

我们对文件进行一系列的操作——打开文件、关闭文件、向文件中写入数据、从文件中读出数据。所有的操作都离不开文件指针。

文件指针: FILE*
FILE:每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中,取名FILE。
FILE* :通过一个FILE的指针来维护这个FILE结构的变量,对文件进行操作。

FILE* pf;//文件指针变量

pf是一个指向FILE类型数据的指针变量。即通过文件指针变量能够找到与它关联的文件。

2.文件的打开与关闭

(1)fopen函数
在C语言中,操作文件之前应该先打开文件。使用 <stdio.h> 头文件中的 fopen() 函数可以打开文件。
用法如下:

//打开文件
FILE * fopen ( const char * filename, const char * mode );

第一个参数filename为文件名(包括文件路径),第二个参数mode为打开方式。若打开成功,fopen返回一个结构指针地址,否则返回NULL

如果没有指定文件路径,则默认为当前工作目录。
例:

//首先定义文件指针:fp
FILE *fp;
//用fopen()函数卡开文件, r——>以只读方式打开
fp = fopen("test.txt", "r"); //没有指定文件路径,则默认为当前工作目录。

(2)fclose函数
在执行完文件的操作后,要用 fclose() 函数进行“关闭文件”操作。以此释放相关资源,避免数据丢失。同时也可提高系统整体的执行效率。
fclose() 的用法为:int fclose(FILE *fp);

//fp 为文件指针,关闭文件代码如下:
fclose(fp);

关闭成功返回值0,否则返回非零值。

以下是文件的打开方式:

在这里插入图片描述
例:以只写方式打开 W

#include <stdio.h>
int main()
{
    FILE* pf;
    //打开文件
    pf = fopen("file1.txt", "w");
    //创建文件并进行判断
    if (pf != NULL)
    {
    	printf("打开文件成功!");
        //关闭文件
        fclose(pf);
    }
    return 0;
}

在这里插入图片描述


三、文件的顺序读写

打开文件后要对文件进行具体的操作,以下为文件的读写函数

功能函数名
字符输入函数fgetc
字符输出函数fputc
文本行输入函数gets
文本行输出函数fputs
格式化输入函数fscanf
格式化输出函数fprintf
二进制输入fread
二进制输出fwrite

例:

#include <stdio.h>
int main()
{
    FILE* fp;
    fp = fopen("D:\\codeFile\\test1.txt", "r");
    if (fp != NULL)
    {
        //feof(file stream )文件指针到达文件末尾
        while (!feof(fp)) //读文件
            printf("%c", fgetc(fp));
    }
    else
        printf("fail to open! \n");
    fclose(fp);
    return 0;
}

结果:(feof()函数检查文件是否读取完毕
在这里插入图片描述


总结

提示:以上就是本文是全部内容

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐