参考博客:http://c.biancheng.net/view/2054.html
交大家一个记忆的方法,我觉得挺好用:
第一:记住全称 。r=>read(读), w=>write(写), a=>append(追加),这个应该是最好记住的。
第二:打开失败。包含r打开方式的,文件不存在就会打开失败,如:r和r+
第三:清空文件内容。包含w打开方式的,文件的内容都会是空的,如果文件有内容,则将会被清空,没有则重新创建一个(内容当然也是空的)。如w和w+
第四:带+号的同时支持读和写
当然还有其他。
其实后面的规则其实可以根据第一条来组合。要注意的就是文件不存在,会不会创建新文件,不会的话,就会返回空指针(NULL),文件存在,文件的内容会不会被清空。
所以下面我之前写的代码,当以a方式打开文件时,不需要判断打开文件是否失败或成功(因为不存在则会自动创建一个新文件)。
#include <stdio.h>
// 题目要求:把file2.txt的内容拼接到file1.txt后面 int main(int argc, char * argv[]) { FILE *fp1, *fp2; if ((fp1 = fopen("./file1.txt", "a")) == NULL) { printf("打开文件file1.txt失败"); } if ((fp2 = fopen("./file2.txt", "r")) == NULL) { printf("打开文件file2.txt失败"); } if (fp1 != NULL && fp2 != NULL) { while(!feof(fp2)) { fputc(fgetc(fp2), fp1); } fclose(fp1); fclose(fp2); } return 0; }
如果记不住, 就直接上“a+”