2013-05-01 44 views
-1

如果我打开一个(比如说)二进制文件,我想追加的这两个以下方式结束似乎对工作我混淆不同的文件模式

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

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

我已阅读文档,但我不清楚这两种打开文件的方法之间的区别。 This网站上说w+将覆盖文件,如果它不存在,a+将追加到该文件的末尾。我还没有尝试过使用a+,但它似乎与r+做同样的事情。

问:到底什么是打开一个文件,r+w+a+的三种方法之间的区别?

+1

很确定[手册页](http://www.manpagez.com/man/3/fopen/)明确指出了这一天。 – hometoast 2013-05-01 11:09:52

回答

5

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

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

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

访问模式R + W +和A +打开该文件在读写模式,但上述差异:

两个R +和W +我们可以读到,在文件中,但R写入+不截断(删除)文件的内容以及它不会创建一个新文件,如果这个文件在w +中不存在时截断文件的内容,并且如果这个文件不存在则创建一个新文件。

0

就像网站上说:

  • r+将打开文件进行读取&写作,但文件必须存在。
  • w+将会打开读取&的文件,但是如果文件存在,它会截断文件(删除其内容)。
  • a+将会打开文件以读取&文字,但在允许任何位置读取时,只能写入文件的末尾,即追加。