注:以下的输入是指磁盘向内存输入,输出是指内存向磁盘输出
一。C语言把文件看作是一个字符(字节)的序列,即由一个一个字符的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。
ASCII文件即是在内存中以二进制表示的数据,如整型的10000(在内存中占2个字节),要输出到硬盘必须先进行转换成ASCII码,那就是5个字节了。用ASCII码在外存存储缺点是一般占存储空间较多,而且要花费转换时间。
二进制文件即是把内存中的数据按其在内存中的存储形式原样输出到磁盘存放。即整型10000存放到磁盘也是2个字节。
一般程序运行过程中如果中间结果数据需要暂时保存在外存上以后又需要输入到外存的,常用二进制文件保存。这样速度较快
二。FILE结构体变量是文件类型,保存着文件的有关信息(如文件名字,文件状态,文件位置等)
FILE *fp
fp是文件指针变量,通过他就能找到他指向的文件
三。文件的打开与关闭
1。文件的打开(fopen函数) FILE * fopen ( const char * filename, const char * mode );
(1)FILE *fp
fp = fopen(文件名,使用文件方式)
例如:fp=fopen(“a1“,”r“)
(2)文件使用方式
“r“ 为输入打开一个文件文件
”w“ 为输出打开一个文本文件,如果不存在该文件,则建立,如果存在,则打开时删除该
文件,在重新建立
”a“ 向文本文件尾追加数据
”rb“ ”wb“ ”ab“ 是针对二进制文件
“r+“ ”w+“ ”a+“ 是针对读/写
(3)如果不能实现打开,则fopen函数将会带回一个出错信息,且将带回一个空指针值NULL
(NULL在stdio.h文件已经定义为0)
常用以下方法打开一个文件:
if( (fp=fopen("file1","r"))==NULL)
{printf("cannot open this file\n");
exit(0);
}
exit函数的作用是关闭所有的文件,终止正在执行的程序。
(4)在向计算机输入文本文件时,将回车换行符转换为一个换行符,在输出时把换行符转换为回
车和换行两个字符。在用二进制文件时,不进行这种转换。
(5)在程序开始运行时,系统自动打开3个标准文件:标准输入,标准输出,标准出错输出
并自动定义了3个文件指针stdin,stdout,stderr
即终端输入,终端输出
2。文件的关闭(fclose函数)
int fclose ( FILE * stream );
fclose(文件指针)
关闭就是使文件指针变量不指向该文件,
应养成关闭文件的习惯,因为关闭文件会向将缓冲区中的数据输出到磁盘文件,然后才释放文件指
针变量
fclose函数也带回一个值,成功返回0,失败返回EOF(-1)。
阅读(3063) | 评论(0) | 转发(0) |