所谓“文件”通常指存储在外部介质上数据的集合。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件,又称为文本文件,它的每个字节存放一个ASCII代码,表明一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存取。函数
1、文件的打开与关闭指针
ANSI C规定了标准输入输出函数库,用fopen()函数来实现打开文件。fopen函数的调用方式一般为:内存
FILE * fp;字符串
fp = fopen(文件名,使用文件方式);get
文件使用方式 | 含义 |
“r”(只读) | 为输入打开一个文本文件 |
“w”(只写) | 为输出打开一个文本文件 |
“a”(追加) | 向文本文件尾增长数据 |
“rb”(只读) | 为输入打开一个二进制文件 |
“wb”(只写) | 为输出打开一个二进制文件 |
“ab”(追加) | 向二进制文件尾增长数据 |
“r+”(读写) | 为读/写打开一个文本文件 |
“w+”(读写) | 为读/写创建一个新的文本文件 |
“a+”(读写) | 为读/写打开一个文本文件 |
“rb+”(读写) | 为读/写打开一个二进制文件 |
“wb+”(读写) | 为读/写创建一个新的二进制文件 |
“ab+”(读写) | 为读/写打开一个二进制文件 |
用fclose函数关闭文件。fclose函数调用的通常形式为:it
fclose(文件指针);table
2、文件的读写操做二进制
fputc函数把一个字符写到磁盘文件上去。其调用形式为:fputc(ch,fp);float
fgetc函数从指定的文件读入一个字符,该文件必须是以读或读写方式打开的,其调用形式为:ch=fgetc(fp);error
fread和fwrite用来读写一个数据块,其通常调用形式为:
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
其中:
buffer:是一个指针。对fread来讲,它是读入数据的存放地址;对fwrite来讲,它是要输出数据的地址。
size:要读写的字节数。
count:要进行读写多少个size字节的数据项。
fp:文件型指针。
格式化读写:
fprintf(文件指针,格式字符串,输出表列);
fscanf(文件指针,格式字符串,输出表列);
fgets的做用是从指定文件读入一个字符串。
fgets(str,n,fp);
fputs函数的做用向指定的文件输出一个字符串。
fputs(str,fp);
3、文件的定位
rewind函数的做用是使位置指针从新返回文件的开头。
rewind(fp);
fseek函数能够实现改变文件的位置指针。
fseek(文件指针,位移量,起始点);
起始点 | 名 字 | 用数字表明 |
文件开始 | SEEK_SET | 0 |
文件当前位置 | SEEK_CUR | 1 |
文件末尾 | SEEK_END | 2 |
“位移量”是指以起始点为基点,向前移动的字节数。ANSI C要求位移量是long型数据。
ftell函数的做用是获得流式文件中的当前位置,用相对于文件开头的位移量来表示。
ftell(fp);
4、文件的状态
feof(fp); //若到文件末尾,函数值为“真”(非0)。
ferror(fp); //若对文件操做出错,函数值为“真”(非0)。
clearerr(fp); //使ferror和feof函数值置零。