【C语言】文件的操作
创始人
2024-12-09 08:05:49
0

目录

  • 文件简介
    • 文件简单分类
    • 二进制文件和文本文件
  • 文件打开关闭
    • 文件打开函数
      • 目标文件
      • 文件指针
      • 打开方式
      • 接受习惯判空
    • 文件关闭函数
  • 文件顺序读写函数
    • 字符输入函数-fgetc
    • 字符输出函数-fputc
    • 字符串输入函数-fgets
    • 字符串输出函数-fputs
    • 二进制输入函数-fread
    • 二进制输出函数-fwrite
    • 格式化输入函数-fscanf
    • 格式化输出函数-fprintf
    • 对文件读写函数理解
      • 文件打开方式决定读写函数
      • 输入输出理解

在这里插入图片描述

文件简介

文件简单分类

文件有很多种分类,我们要如何区分呢?当然是根据文件后缀名来区分。
在这里插入图片描述
像图中标红的就是文件后缀名,有的人可能会疑惑为什么自己没有,通过设置就可以显示文件后缀名。点开文件资源管理器后按如下步骤就可以显示文件后缀名了。在这里插入图片描述

二进制文件和文本文件

为了以下文件操作函数的讲解,我们先来介绍二进制文件和文本文件。
数据在内存中以二进制存储,如果不加转换输出到外存文件中,该外存文件就被称为二进制文件。如果经过转换以ASCII码值存储的文件就是文本文件。

文件打开关闭

要想进行文件打开与关闭操作就要用到文件打开与关闭函数。

文件打开函数

在这里插入图片描述

目标文件

目标文件是什么?难道是直接将文件名给过去吗?当然不是,我们要看目标文件与该源文件是否在同一路径下。如果在同一路径下就直接将文件名以及后缀传过去。

data.txt 

如果不在同一路径就要将文件路径包含进去,格式是文件路径+文件名主干+文件后缀。c:\code\test.txt

文件指针

看上图的返回值就是一个文件指针,那我们定义一个文件指针就相当简单了。 FILE* pf 用来接收文件打开函数的返回值。

打开方式

OK到了这有懵逼了,打开方式是什么,打开方式如下图
在这里插入图片描述可以看见关于文件的操作有很多,但如果文件不存在时使用有写的操作时就会自动帮我们在当前路径下创建一个文件,其他操作则会直接报错。

接受习惯判空

FILE* pf = fopen("data.txt", "w"); if (pf == NULL) 	{ 		perror("fopen"); 		exit(1); 	} 

这样可以判断我们是否打开文件成功。

文件关闭函数

在这里插入图片描述参数就直接将上面创建的文件指针传过来就行。

fclose(pf); 	pf = NULL; 

文件顺序读写函数

字符输入函数-fgetc

在这里插入图片描述该函数从文件起始位置开始往下读取一个字符并返回ASCII值。如果不进行该偏移操作,那下次使用就会从上次之后开始继续读取。

char ch = '0'; ch = fgetc(pf); printf("%d \n", ch); 

字符输出函数-fputc

在这里插入图片描述该函数将要输入的字符写进文件末尾。
char ch = '0'; fputc(ch,pf);

字符串输入函数-fgets

在这里插入图片描述该函数的作用就是将文件中n个字符输入到string中。但是如果遇到’\0’会提前结束。

char a[20]; fgets(a,5,pf); 

字符串输出函数-fputs

在这里插入图片描述
该函数就是将字符串string写进文件中。遇到’\0’结束。

char a[20] = "hello" fputs(a,pf); 

二进制输入函数-fread

在这里插入图片描述该函数就是将文件中的内存输入进来。

char a[10]; fread(a,sizeof(char),5,pf);  

二进制输出函数-fwrite

在这里插入图片描述该函数就是将内存数据写入文件中以二进制形式。

char a[20] = "asdffv"; fwrite(a,sizeof(a[0]),20,pf); 

格式化输入函数-fscanf

在这里插入图片描述该函数就比平常我们使用的scanf函数多了一个文件指针。其他参数都一样。

int a; char b; fsanf(pf,"%d%c",&a,&b); 

格式化输出函数-fprintf

在这里插入图片描述该函数也是就比平常我们使用的printf函数多了一个文件指针。其他参数都一样。

int a = 10; char b = 'a'; fprintf(pf,"%d%c",a,b); 

对文件读写函数理解

文件打开方式决定读写函数

当我们用"r"“rb"方式打开时就只能进行输入函数,且该文件必须是已经存在的。
当我们用"w”"wb"方式打开时就只能进行输出函数

输入输出理解

输入就是从文件中拿东西过来,不改变文件。所以用读"r"的操作
输出就是将我们的东西输出进文件中,会改变文件,所以用写"w"的操作。

相关内容

热门资讯

重磅来袭!喜扣跑胡子有挂吗(辅... 重磅来袭!喜扣跑胡子有挂吗(辅助挂)外挂透视辅助器(2022已更新)(今日头条)所有人都在同一条线上...
记者发布!雀友会是否有外 挂,... 记者发布!雀友会是否有外 挂,雀神麻将挂先试用后付款,可靠教程(有挂介绍);1、完成雀友会是否有外 ...
专业讨论!!胡乐麻将有挂的表现... 专业讨论!!胡乐麻将有挂的表现,广东老友潮汕麻将的确是有挂的,攻略方法(有挂方法);1、实时胡乐麻将...
今日公布!途游跑得快辅助器(透... 今日公布!途游跑得快辅助器(透视)透视辅助神器(2025已更新)(今日头条)运途游跑得快辅助器辅助工...
详细说明!边锋老友棋牌麻将有挂... 详细说明!边锋老友棋牌麻将有挂没,广东雀神麻雀胜率,详细教程(有挂揭秘)在进入边锋老友棋牌麻将有挂没...
黑科技辅助挂!悠闲麻将川南四川... 黑科技辅助挂!悠闲麻将川南四川人民棋牌有挂吗,边锋斗地主推荐,广东雀神麻雀怎么赢1、下载好悠闲麻将川...
避坑细节!呼兰麻将有挂么,闲逸... 避坑细节!呼兰麻将有挂么,闲逸斗亲友圈果真真的有挂,2025版教程(有挂细节);1、呼兰麻将有挂么系...
玩家必看教程!!家乡大贰有没有... 玩家必看教程!!家乡大贰有没有辅助,微信小程序雀神辅助器苹果版,科技教程(有挂辅助);1、实时家乡大...
黑科技辅助挂!腾讯广东麻将有窍... 黑科技辅助挂!腾讯广东麻将有窍门吗,掌酷十三张外 挂,微信雀神小程序有挂吗1、点击下载安装,腾讯广东...
科技通报!哈狗游戏真的有挂吗(... 科技通报!哈狗游戏真的有挂吗(辅助挂)外挂透视辅助神器(2023已更新)(今日头条);1、在哈狗游戏...