如果我打开(比方说)二进制文件,并且我想追加它的结尾,以下两种方式似乎对我有效
fileVar = fopen("FileName", "w+b");
和
fileVar = fopen("FileName", "r+b");
我已阅读文档,但我不清楚这两种打开文件的方法之间的区别。 This网站表示w+
将覆盖文件(如果该文件尚不存在),a+
将附加到文件的末尾。我没有尝试使用a+
,但它似乎与r+
做同样的事情。
问题:打开文件的三种方式r+
,w+
和a+
之间究竟有什么区别?
答案 0 :(得分:5)
r + 从文件开头开始,但如果文件不存在则不会创建新文件。
如果文件存在,w + 会将现有文件截断为零长度,否则会创建一个新文件。
如果文件存在,a + 从文件末尾开始,否则会创建一个新文件。
访问模式r +,w +和a +以读写模式打开文件,但有以上区别:
r +和w +我们都可以读取,写入文件但是r +不会截断(删除)文件的内容,如果这样的文件没有退出而没有创建新文件,而在w +截断内容文件以及如果此文件不存在则创建新文件。
答案 1 :(得分:0)
就像网站上说的那样:
r+
会打开文件进行阅读&写作,但文件必须存在。w+
会打开文件进行阅读&写,但如果文件存在,它将截断文件(删除其内容)。a+
会打开文件进行阅读&写作,但在任何地点允许阅读时,你只能写到文件的末尾,即追加。