转自fopen函数mode参数详解_fopen mode-CSDN博客 有删减
函数原型:FILE *fopen(const char *path, const char * mode);
参数mode字符串则代表着流形态,提供了“r”、“w”、“a”、“+”、“b”、“r”六种模式选择符号,常用的模式如下:
“r” :以只读方式打开文件,该文件必须存在。
“w” :打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
“a” :以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
“r+” :以可读写方式打开文件,该文件必须存在。
“w+” :打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
“a+”:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
“rb” :只读打开一个二进制文件,只允许读数据。
“wb” :只写打开或建立一个二进制文件,只允许写数据。
“ab” :追加打开一个二进制文件,并在文件末尾写数据。
“rb+” :读写打开一个二进制文件,允许读写数据,文件必须存在。
“wb+” :读写打开或建立一个二进制文件,允许读和写。
“ab+” :读写打开一个二进制文件,允许读,或在文件末追加数据。
“rt” :只读打开一个文本文件,只允许读数据。
“wt” :只写打开或建立一个文本文件,只允许写数据。
“at” :追加打开一个文本文件,并在文件末尾写数据。
“rt+” :读写打开一个文本文件,允许读和写。
“wt+” :读写打开或建立一个文本文件,允许读写。
“at+” :读写打开一个文本文件,允许读,或在文件末追加数据。
打开方式总结:
① 打开是否为二进制,用“b”标识;
② 读写方式有以下几种:只读、只写、读写、追加只写、追加读写。
③ 对文件是否必须存在,以及存在时是清空还是追加会有不同的响应。
注意:使用完之后记得 用fclose()函数关闭文件,即fopen()与fclose()成对出现,否则会造成文件所占内存泄漏和在下次访问文件时出现问题。