文件的打开与关闭

对于文件的打开与关闭,我们可以通过鼠标来控制!!但是,在我们写代码的时候,总不能来用鼠标来打开关闭文件,并且还能将代码放在那个文件里面吧!因此,我们需要一个文件指针来帮助我们来打开和关闭文件!!

1.文件指针

缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的,取名FILE.

上述的大致意思就是: 一旦打开文件,在内存中就会开辟一块空间,里面记录相关的信息(如,文件的名字 ;文件的状态,……)而这一块区域,我们叫做:文件信息区!!

在vs2013中,编译环境提供的stdio.h 头文件中有以下的文件的声明:

​

struct _iobuf {
    char* _ptr;
    int   _cnt;
    char* _base;
    int   _flag;
    int   _file;
    int   _charbuf;
    int   _bufsiz;
    char* _tmpfname;
};
typedef struct _iobuf FILE;

在上述的代码中,是一个文件指针:typedef struct _iobuf FILE;并且重命名为:FILE   因此,我们就能直接使用FILE这个指针了!!

不同的C编译器的FILE类型包含的内容不完全相同,但是大同小异。

每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息, 使用者不必关心细节

一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。

下面我们可以创建一个FILE*的指针变量:

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

定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变 量)。通过该文件信息区中的信息就能够访问该文件。也就是说通过文件指针变量能够找到与它关联 的文件

 上面我们简单的介绍了一下FILE的由来与使用,下面笔者将进入:文件的打开与关闭的方式上:

文件在读写之前应该先打开文件,在使用结束之后应该关闭文件

在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指 针和文件的关系。

ANSIC 规定使用fopen函数来打开文件,fclose来关闭文件

//打开文件
FILE * fopen ( const char * filename, const char * mode );
//关闭文件
int fclose ( FILE * stream );

在打开文件的操作过程中:

const char * filename  :是指文件名!!

const char * mode   : 这个是指:文件的打开方式!!

举列一下:

#include <stdio.h>


int main()
{
	FILE* pf = fopen("tset.txt", "w");

}

经过上面的代码的运行,我们就可以清晰的看到:

因此,这样就是成功的创建并打开了这个文件!!

 当文件成功打开的话,会返回一个地址,当文件打开失败的话,会返回一个NULL(空指针),所以,需要对返回值进行判断!!

下面请看一下笔者的完美打开关闭文件的简单代码:
 

int main()
{
	//打开文件
	FILE* pf = fopen("test.txt", "w");
	if (NULL == pf)
	{
		perror("fopen");
		return 1;
	}
	//写文件!
	//具体内容不再写了!



	//关闭文件
	fclose(pf);
	pf = NULL;  //手动置空(NULL)
	return 0;
}

上述内容,则为正确的打开文件的操作!!要切记:一定要对指针进行是否为空指针的判断!!

下面简述几种文件的打开操作:

更多关于文件的精彩内容,请详见笔者后续更新!本文就先到此为止!!

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念君思宁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值