C语言——文件的基本操作

C语言文章更新目录

C/C++学习资源(百度云盘链接)
计算机二级资料(过级专用)
C语言学习路线(从入门到实战)
编写C语言程序的7个步骤和编程机制
C语言基础-第一个C程序
C语言基础-简单程序分析
VS2019编写简单的C程序示例
简单示例,VS2019调试C语言程序
C语言基础-基本算法
C语言基础-数据类型
C语言中的输入输出函数
C语言流程控制语句
C语言数组——一维数组
C语言数组——二维数组
C语言数组——字符数组
C语言中常用的6个字符串处理函数
精心收集了60个C语言项目源码,分享给大家
C语言核心技术——函数
C代码是怎样跑起来的?
C语言实现字符串的加密和解密

C语言中文件的基本操作包括:文件的打开、文件的关闭以及文件的输入和输出。除了标准的输入、输出文件外,其它的文件都必须先打开在使用,使用后必须关闭该文件。

  • 文件指针
    文件指针是一个指向文件有关信息的指针,这些信息包括文件名、状态和当前位置,他们保存在一个机构体变量中。在使用文件时需要在内存中为其分配空间,用来存放文件的基本信息。C语言中规定该结构体类型为FILE型。
    文件指针的定义:FILE *fp;//fp是一个指向FILE类型的指针变量
  • 文件的打开
FILE *fp;
fp = fopen(const char * filename, const char * mode);

在这里,filename 是字符串,用来命名文件,访问模式 mode 的值可以是下列值中的一个:
C语言——文件的基本操作_第1张图片
如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

如果要以只读方式打开文件名为test.txt的文本文件,应写成如下形式:

FILE *fp;
fp = fopen("test.txt", "r");

如果打开成功,则返回一个有确定指向的FILE类型指针;若打开失败,则返回NULL。

  • 文件的关闭
    文件在使用完毕后,应该使用fclose函数将其关闭。
    fclose的一般形式为:fclose(fp);//fp是文件指针
    当正常关闭文件后,fclose函数返回值为0,否则返回EOF.

为什么使用完文件后要将其关闭?
关闭文件的目的是为了防止因为没有关闭 文件而造成的数据流失。

  • 文件操作哈数:fprintffscanf
    看到这个函数名,大家可能会很快的联想到printf和scanf函数,printf和scanf是格式化读写函数,fprintf和fscanfprintf和scanf函数的作用相似,它们的区别在于读写的对象不同,printf和scanf函数读写的对象是终端,而fprintf和fscanf函数对象的对象是磁盘文件。接下来我们详细的看下这两个函数。

fprintf函数

格式:ch = fprintf(文件类型指针,格式字符串,输出列表);

实例:

#define _CRT_SECURE_NO_WARNINGS
#include

int main() {
FILE* fp;
int num = 65;
if ((fp=fopen("C:\\test.txt","w")) == NULL)
{
printf("文件打开失败!");
return -1;
}
fprintf(fp, "%c", num);
fclose(fp);
return 0;
}

运行结果:

C语言——文件的基本操作_第2张图片

从运行结果我们可以看出写入到文本里的内容为‘A’。

在这段代码里fprintf函数的作用是将整形变量num的值以“%d”的格式输出到fp所指向的文件中。

fscanf函数

格式:ch = fscanf(文件类型指针,格式字符串,输入列表);

实例:

#define _CRT_SECURE_NO_WARNINGS
#include

int main() {
FILE* fp;
char i, j;
if ((fp=fopen("C:\\test.txt","r")) == NULL)
{
printf("文件打开失败!");
return -1;
}
for (i = 0; i < 5; i++)
{
fscanf(fp, "%c", &j);
printf("%c is %5d\n", j, j);
}
fclose(fp);
return 0;
}

运行结果:

C语言——文件的基本操作_第3张图片

从结果可以看出这段代码将文件中的hello以整数形式输出。

好了,今天就介绍到这,后续介绍 fread和fwrite函数

如果您觉得本篇文章对您有帮助,请转发给更多的人
C语言中文社区】是一个C语言/C++视频教程、学习笔记、电子书、计算机二级资料等专注于C语言/C++编程学习者的干货知识分享平台,精选深度文章,分享优秀干货类、技能类的学习资源,帮助学习中的你。
在这里插入图片描述

你可能感兴趣的:(C语言)