【C语言】熟悉文件基础知识

本文介绍了C语言中文件操作的重要性,区分了文本文件和二进制文件,阐述了文件名的构成以及流的概念,包括标准输入输出流和文件指针。同时讲解了文件的打开与关闭,以及绝对路径和相对路径的使用。
摘要由CSDN通过智能技术生成

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~


文件

为了数据持久化保存,使用文件,否则数据存储在内存中,程序退出,内存回收,数据就会丢失。

程序设计中,文件分两种:程序文件、数据文件

文件名

唯一的文件标识,包含3部分:文件路径+文件名主干+文件后缀  (例:c:\code\test.txt  )

文本文件和二进制文件

文本文件是数据以ASCII字符的形式存储的文件

二进制文件是数据在内存中以二进制的形式存储的文件

字符⼀律以ASCII形式存储数值型数据既可以⽤ASCII形式存储,也可以使⽤⼆进制形式存储。

如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占⽤5个字节(每个字符⼀个字节),⽽ ⼆进制形式输出,则在磁盘上只占4个字节

测试代码

#include<stdio.h>
int main()
{
	int a = 10000;                  
	FILE* pf = fopen("test.txt", "wb");
	fwrite(&a, 4, 1, pf);//以二进制的形式写入文件
	fclose(pf);
	pf = NULL;
	return 0;
}

我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。
C程序针对⽂件、画⾯、键盘等的数据输⼊输出操作都是通过流操作的。
⼀般情况下,我们要想向流⾥写数据,或者从流中读取数据,都是要打开流,然后操作。

标准流

C语⾔程序在启动的时候,默认打开了3个流:

  • stdin 标准输⼊流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。
  • stdout 标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出流中。
  • stderr 标准错误流,⼤多数环境中输出到显⽰器界⾯。

这是默认打开了这三个流,我们使⽤scanf、printf等函数就可以直接进⾏输⼊输出操作的。
stdin、stdout、stderr 三个流的类型是: FILE * ,通常称为⽂件指针。
C语⾔中,就是通过 FILE * 的⽂件指针来维护流的各种操作的。

文件指针

每个被使⽤的⽂件都在内存中开辟了⼀个相应的⽂件信息区,⽤来存放⽂件的相关信息(如⽂件的名 字,⽂件状态及⽂件当前的位置等)。这些信息是保存在⼀个结构体变量中的。该结构体类型是由系统声明的,取名FILE.(不需要关注文件内部细节)

每当打开⼀个⽂件的时候,系统会根据⽂件的情况⾃动创建⼀个FILE结构的变量,并填充其中的信 息,使⽤者不必关⼼细节

文件的打开和关闭

⽂件在读写之前应该先打开⽂件,在使⽤结束之后应该关闭⽂件。
在编写程序的时候,在打开⽂件的同时,都会返回⼀个FILE* 的指针变量指向该⽂件,建立了指针和⽂件的关系。
ANSIC规定使⽤ fopen 函数来打开⽂件, fclose 来关闭⽂件。

fopen打开文件

fclose关闭文件

代码操作

用只读形式,没有创建文件

绝对路径

比如我想在桌面上创建一个文件

相对路径

  • . 表示当前目录
  • . . 表示上一级路径
  •  没写 . 表示默认当前路径

  • 72
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 62
    评论
评论 62
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值