十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在C言语中,文件操作多是由库函数来完成的,这节引见文件的翻开和封闭。
成都创新互联于2013年开始,先为八公山等服务建站,八公山等地企业,进行企业商务咨询服务。为八公山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
fopen() 函数用来翻开一个文件,它的原型为:
FILE *fopen(char *filename, char *mode);
filename为文件名(包含文件途径),mode为翻开方法,它们多是字符串。fopen() 会获取文件信息,包含文件名、文件形态、以后读写地位等,并将这些信息保管到一个FILE类型的构造体变量中,然后将该变量的地址前往。
FILE是在stdio.h头文件中界说的一个构造体,用来保管文件信息。
假如愿望接纳 fopen() 的前往值,就需求界说一个 FILE 类型的指针。例如:
FILE *fp = ("demo.txt", "r");
表现以“只读”方法翻开以后目次下的 demo.txt 文件,并使 fp 指向该文件,如许就可以经过 fp 来操作 demo.txt 了。fp 平日被称为文件指针。又如:
FILE *fp = fopen("D:\\demo.txt","rb");
表现以二进制方法翻开 D 盘下的 demo.txt 文件,许可读和写。
翻开方法(mode)有多种,见下表:
翻开方法 | 阐明 |
---|---|
r | 以只读方法翻开文件,只许可读取,不许可写入。该文件必需存在。 |
r+ | 以读/写方法翻开文件,许可读取和写入。该文件必需存在。 |
rb+ | 以读/写方法翻开一个二进制文件,许可读/写数据。 |
rt+ | 以读/写方法翻开一个文本文件,许可读和写。 |
w | 以只写方法翻开文件,若文件存在则长度清为0,即该文件内容消逝,若不存在则创立该文件。 |
w+ | 以读/写方法翻开文件,若文件存在则文件长度清为零,即该文件内容会消逝。若文件不存在则树立该文件。 |
a | 以追加的方法翻开只写文件。若文件不存在,则会树立该文件,假如文件存在,写入的数据会被加到文件尾,即文件本来的内容会被保存(EOF符保存)。 |
a+ | 以追加方法翻开可读/写的文件。若文件不存在,则会树立该文件,假如文件存在,则写入的数据会被加到文件尾后,即文件本来的内容会被保存(本来的EOF符 不保存)。 |
wb | 以只写方法翻开或新建一个二进制文件,只许可写数据。 |
wb+ | 以读/写方法翻开或树立一个二进制文件,许可读和写。 |
wt+ | 以读/写方法翻开或树立一个文本文件,许可读写。 |
at+ | 以读/写方法翻开一个文本文件,许可读或在文本末追加数据。 |
ab+ | 以读/写方法翻开一个二进制文件,许可读或在文件末追加数据。 |
文本文件和二进制文件的差别请检查:C言语fopen()翻开文本文件与二进制文件的差别
1) 文件翻开方法由r、w、a、t、b、+ 六个字符拼成,各字符的寄义是:
r(read):读
w(write):写
a(append):追加
t(text):文本文件,可省略不写
b(banary):二进制文件
+:读和写
2) 假如没有“b”字符,文件以文本方法翻开。
3) 凡用“r”翻开一个文件时,该文件必需曾经存在。
4) 在翻开一个文件时,假如失足,fopen将前往一个空指针值NULL。在程序中可以用这一信息来判别能否完成翻开文件的任务,并作响应的处置。因而常用以下程序段翻开文件:
if( (fp=fopen("D:\\demo.txt","rb") == NULL ){ printf("Error on open D:\\demo.txt file!"); getch(); exit(1); }
这段程序的意义是,假如前往的指针为空,表现不克不及翻开D盘根目次下的 demo.txt 文件,并给出提醒信息“error on open D:\\demo.txt file!”。第3行getch()的功用是从键盘输出一个字符,但不在屏幕上显示。在这里,该行的感化是等候,只要当用户从键盘敲任一键时,程序才持续履行,因而用户可应用这个等候工夫浏览失足提醒。敲键后履行exit(1)加入程序。
5) 把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方法写入磁盘时,也要把二进制码转换成ASCII码,因而文本文件的读写要破费较多的转换工夫。对二进制文件的读写不存在这种转换。
6) 规范输出文件 stdin(键盘)、规范输入文件 stdout(显示器)、规范毛病文件 stderr(显示器)是由零碎翻开的,可直接运用。
文件一旦运用终了,应当用fclose()函数把文件封闭,以释放相干资本,防止数据丧失。fclose() 的原型为:
int fclose(FILE *fp);
fp 为文件指针。例如:
fclose(fp);
文件正常封闭时,fclose() 的前往值为0,假如前往非零值则表现有毛病发作。