c语言怎么同时读写一个文件

c语言怎么同时读写一个文件,第1张

FILE *fp

fp = fopen("c:\\temp\\test.txt", "r+") //由于反斜杠\是控制字符,所以必须再加一个反斜杠

打开文本文件

"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 读写时,写入为覆盖 *** 作,而不是插入。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11536428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存