本来想写自己的理解的……结果查查发现这个把细节写的很好很完美,直接粘过来算了:
"a" Append to a file. Writing operations append data at the end of the file. The file is created if it does not exist.
"r+" Open a file for update both reading and writing. The file must exist.
"w+" Create an empty file for both reading and writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.
"a+" Open a file for reading and appending. All writing operations are performed at the end of the file, protecting the previous content to be overwritten. You can reposition (fseek, rewind) the internal pointer to anywhere in the file for reading, but writing operations will move it back to the end of file. The file is created if it does not exist.
简要提炼下:
r+ 和 w+ 的区别:
r+ 是可以直接写在文件上,读取和写入的光标都在文件开头。
w+ ,如果文件已经存在,将建立一个新文件覆盖原文件(很缺德啊……),并且支持读取。
a+ 和 r+:
a+只能在文件最后补充,光标在结尾。
r+可以覆盖前面的内容,光标在开头