文件的打开 关闭 以及文件属性的获取

一、打开文件

通俗来说,建立文件的各种有关信息,并使文件指针指向该文件
打开指定文件可使用fopen( )函数;
fopen函数原型

FILE *fopen(char *filename,char *mode);

使用mode模式打开指定的filename文件

  • 打开成功,返回FILE类型的指针
  • 打开失败,返回NULL

mode必须为字符串格式,头尾必用双引号括起来

mode 即文件中的访问方式

文件使用方式 意义
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读和写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据

以上均是从书中总结的,mode有点儿多 ,本人总结了一点方法

  1. 二进制文件 b

    • 文本文件 t
    • 读 r
    • 写 w
    • 追加 a
    • 读写 +
  2. “r" 打开文件时,该文件必须已经存在,且只能从该文件读出

  3. "w"打开的文件只能向该文件写入;
    若文件不存在,则以指定文件名建立该文件
    若指定文件已存在,则将该文件删去,重建一个新文件

  4. 若要向一已存在的文件中追加信息,只能用"a"方式打开文件,若此时该文件不存在,则会新建一个文件

  5. 常用以下程序段打开文件

FILE *fp;
fp=fopen("e:\\code\\test.txt","r");
if(fp==NULL)
{
	printf("\n不能打开e:\\code\\test.txt file!");
	exit(1);退出程序
 } 
  

打开一个和可执行文件在相同路径下的文本文件 test.txt

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

打开一个E盘下code文件夹下的文本文件 test.txt

FILE *fp;
fp=fopen("e:\\code\\test.txt","rt");\\第一个表示转义字符,第二个表示根目录

其中第一个反斜线表示转义字符,第二个反斜线表示根目录

FILE *fp;
fp=fopen("e:/code/test.txt","rt");

以上均属于嵌入式文件方法,下面将介绍交互式文件方法,即由键盘输入所要打开的文件名及路径

FILE *fp;
char filename[40];
gets(filename);
fp=fopen(filename,"r");

二、关闭文件

使用 fclose( ) 函数将指定的文件关闭,并将FILE文件指针的相关资源及所占用的缓冲区归还给系统
fclose 函数原型

int fclose (FILE *fp);

返回0,关闭成功;返回非0,有错误发生

三、获取文件属性

fileno函数(stdlib.h)

int fileno(FILE *fp);  返回所打开文件指针fp对应的文件描述字(handle_no)

filelength函数(io.h)

long filelength(int handle_no);  返回文件描述字(handle_no)对应的文件大小,以字节为单位

取得E盘下 code 文件夹下 test.txt 文件大小的程序

FILE *fp;
int fno,fsize;
fp=fopen("e:\\code\\test.txt","rt");
fno=fileno(fp);
fsize=filelength(fno);
fclose(fp);
发布了26 篇原创文章 · 获赞 6 · 访问量 1464

猜你喜欢

转载自blog.csdn.net/qiao_xi/article/details/90498675