fp = fopen("c:\\temp\\test.txt", "r+") //由于反斜杠\是控制字符,所以必须再加一个反斜杠
打开文本文件:
"w":只能向文件写数据,若指定的文件不存在则创建它,如果存在则先删除它再重建一个新文件
"a":向文件增加新数据(不删除原有数据),若文件不存在则打开失败,打开时位置指针移到文件末尾
"r+":可读/写数据,该文件必须先存在,否则打开失败
"w+":可读/写数据,用该模式打开新建一个文件,先向该文件写数据,然后可读取该文件中的数据
"a+":可读/写数据,原来的文件不被删去,位置指针移到文件末尾
打开二进制文件的模式与打开文本文件的含义是一样的,不同的是模式名称里面多一个字母'b’,以表示以二进制形式打开文件。
wt+wb+写入时都是将原来的文件覆盖的,也就是删除了。你可以采用r+的方式,你也可以好好理解下面的几种情况试试看,我还没有时间试过一遍。
r
以只读方式打开文件,该文件必须存在。
r+
以可读写方式打开文件,该文件必须存在。
rb+
读写打开一个二进制文件,只允许读写数据。
rt+
读写打开一个文本文件,允许读和写。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
(原来的EOF符不保留)
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
wt+
读写打开或建立一个文本文件;允许读写。
at+
读写打开一个文本文件,允许读或在文本末追加数据。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
可以的。但是需要注意以下几点:1 打开的时候,调用
FILE *fopen(char *name, char *mode)
时,参数mode要同时支持读写。也就是mode字符串中必须有+。
2 读写的时候,需要注意文件指针的位置,可以通过
int fseek(FILE *fp, int offset, int mode)
来调整文件指针位置。
mode有SEEK_SET, SEEK_CUR, SEEK_END三种。
a)SEEK_SET: 将指针移动到文件开始后的offset字节处;
b)SEEK_CUR:将指针移动到当前位置+offset字节处;
c)SEEK_END:将指针移动到文件结尾前offset字节处。
除SEEK_CUR外,其它两种的offset值必须为非负整数。
3 读写时,写入为覆盖 *** 作,而不是插入。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)