-1

如果我打开一个(比如说)二进制文件,并且我想附加它的结尾,那么以下两种方法似乎都对我有用

fileVar = fopen("FileName", "w+b");

fileVar = fopen("FileName", "r+b");

我已经阅读了文档,但是我不清楚这两种打开文件的方法之间的区别。网站说w+如果文件不存在,它将覆盖它,a+并将附加到文件的末尾。我没有尝试使用a+,但它似乎与r+.

问题:r+打开文件的三种方式,w+和之间到底有什么区别a+

4

2 回答 2

6

r+从文件开头开始,但如果文件不存在则不会创建新文件。

w+如果文件存在,则将现有文件截断为零长度,否则创建一个新文件。

a+如果文件存在,则从文件末尾开始,否则创建一个新文件。

访问模式 r+、w+ 和 a+ 以读写模式打开文件,但有上述区别:

r+ 和 w+ 我们都可以在文件上读、写,但是 r+ 不会截断(删除)文件的内容,如果这样的文件没有退出,它也不会创建新文件,而在 w+ 中也会截断文件的内容如果这样的文件不存在,则创建一个新文件。

于 2013-05-01T11:07:35.207 回答
0

就像网站上说的:

  • r+将打开文件进行读写,但文件必须存在。
  • w+将打开文件进行读写,但如果文件存在,它将截断文件(删除其内容)。
  • a+将打开文件进行读写,但在任何位置都允许读取,但您只能写入文件末尾,即追加。
于 2013-05-01T11:07:46.387 回答