简而言之,文件就是一张内存表,打开文件,就会有一个文件内存指针指向内存表的首地址,然后对指针进行加减操作就能访问所有的内存。开始读写文件。
FILE*是文件指针,用来记录某个文件结构体的地址数据。C语言中所有的文件操作都是通过某个文件指针表示操作所针对的文件的。
fopen函数用于打开一个文件,返回一个文件结构体的地址。如果打开失败则返回NULL。打开文件时需要指定文件名称以及打开方式。
fclose函数用于关闭一个文件,文件被关闭后就可以被其他程序所使用了。fclose函数需要一个文件指针作为参数,如果执行成功则返回0否则返回-1(EOF)。
文件打开模式有如下三种基本选择:
"r":表示打开文件用来读(要求文件已存在)
"w":表示打开文件用来写(文件可以不存在,如果存在则会覆盖)
"a":表示打开文件用于追加写(文件可以不存在,如果存在则会把写的内容追加在原有内容后面)
在三种基本模式基础上可以增加符号"+",例如"r+","w+"和"a+",他们都表示可读可写。
三种基本模式还可以增加符号"b",例如"rb+","w+b",“ab”等,符号“b”表示以二进制方式打开。
fgetc和fputc可以以文本方式对文件进行单个字符的读写操作
fwrite和fread可以以二进制方式对文件进行大量数据的读写操作
文件位置指针用来记录文件当前操作的位置,每次文件操作后文件位置指针会被自动调整。
可以在程序中编码调整文件位置指针的位置。rewind函数可以把文件位置指针调整到文件的开头。fseek函数可以把文件位置指针调整到文件中的任意位置。
fgets可以从任意文件中读取多个字符,fputs函数可以向任意文件中以文本方式写入多个字符。
fprintf和fscanf这两个函数可以以格式化的方式向文件中写入数据或从文件中读出数据。