C语言基本概念—文件(二)

什么是文件

C程序把文件分为ASCII文件和二进制文件。ASCII文件是文本文件。
在C语言中,文件是一个字节流或二进制流,也就是说,对于输入输出的数据都按“数据流”的形式处理。
文件输入输出方式也称存取方式,C语言中,文件有两种存取方式:顺序存取和直接存取

文件类型指针

格式 FILE * fp;
fp是指向FILE结构体类型的指针变量

文件的打开与关闭

fopen()函数

fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE 包含了所有用来控制流的必要的信息。下面是这个函数调用的原型:

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

在这里,filename 是字符串,用来命名文件,访问模式 mode 的值可以是下列值中的一个:

r	打开一个已有的文本文件,允许读取文件。
w	打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。
a	打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
r+	打开一个文本文件,允许读写文件
w+	打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
a+	打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。

尽量整理出来让大家看的清楚一点不那么晕眼睛(,•́ . •̀,)
如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

fclose() 函数

关闭函数,调用格式为
fclose(文件指针);
如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回 EOF。
这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。
EOF 是一个定义在头文件 stdio.h 中的常量。
C 标准库提供了各种函数来按字符或者以固定长度字符串的形式读写文件。

怎么读写文件

fread()函数和fwrite()函数

当要求一次性读写一组数据,例如,一个实数或一个结体变量的值,就可以用fread()函数和fwrite()函数
调用形式:

fread(buffer,size,count,fp)fwrite(buffer,size,count,fp)

其中buffer代表的是一个指变量;
size代表的是要读写的字节数;
count用来指定每读写一次,输入或者输出数据块的个数(每个数据块具有size个字节);
fp文件类型的指针;

fscanf()函数和fprint()函数

格式化读写的函数,读写对象是磁盘文件上的数据。
形式如下:

fscanf(文件指针,格式字符串,输入列表)
fprint(文件指针,格式字符串,输入列表);

fputs函数()

用来把字符串输出到文件中,调用形式如下:

fputs(str,fp);

str是输出的字符,fp是文件指针,字符串末尾的’\0‘不输出;

文件的定位

rewind()函数

rewind(fp);

该函数的功能是使文件的位置指针重新返回到文件的开头,其中fp为文件指针,且该函数无返回值。

文件检测函数

feof()函数;

int feof(FILE *stream);

功能:检测文件是否结束,结束返回1否则返回0

ferror()函数

ferror(*fp);

功能:返回0表示文件未出错,非0表示出错

fseek()函数

fseek(文件类型指针,位移量,起始点)

起始点:
文件开头 SEEK_SETO
文件当前位置 SEEK_CURI
文件结尾 SEEK_END2
重点考察feof函数调用格式和参数的含义,例如:
int a = 2;fseek(fp,0,a);

发布了41 篇原创文章 · 获赞 73 · 访问量 7975

猜你喜欢

转载自blog.csdn.net/Miracle1203/article/details/104234010