6、w
w : 以写的方式打开文件 ;
如果文件不存在 , 就创建文件 ;
如果文件存在 , 覆盖原有数据重新写入数据 ;
写出时 , 将该文件原有数据覆盖 , 即文件长度清 0 00 , 删除文件内容 , 重新写入文件内容 ;
#include <stdio.h> int main() { // 以 w 方式打开文件 FILE *p = fopen("D:\\a.txt", "a"); if(p == NULL) { printf("File Open Failed !\n"); }else { fputs("hello\n", p); // 如果打开成功 , 则需要关闭文件 fclose(p); } printf("Main End\n"); return 0; }
执行结果 : 该程序无论执行多少次 , 显示的结果都是 hello ;
7、w+
w+ : 以 读写的方式 打开文件 ;
如果文件不存在 , 就创建文件 ;
如果文件存在 , 覆盖原有数据重新写入数据 ;
写出时 , 将该文件原有数据覆盖 , 即文件长度清 0 00 , 删除文件内容 , 重新写入文件内容 ;
代码示例 :
#include <stdio.h> int main() { // 以 w+ 读写方式 打开 二进制文件 FILE *p = fopen("D:\\a.txt", "w+"); if(p == NULL) { printf("File Open Failed !\n"); }else { printf("File Open Success !\n"); fputs("Hello\n", p); fputs("World\n", p); // 如果打开成功 , 则需要关闭文件 fclose(p); } printf("Main End\n"); return 0; }
执行结果 :
如果文件不存在 , 则直接创建文件 , 并写出数据 ;
如果文件存在 , 则覆盖原来的文件 , 重新写入数据 ;
8、a
a : 以 追加方式 打开写文件 ,
如果文件不存在 , 则 创建文件 ;
如果文件存在 , 则新写入的数据会被 追加到文件末尾 , 文件原来的数据会被保留 ;
#include <stdio.h>
int main() { // 以 a 追加方式打开文件 // 如果文件不存在创建文件 // 如果文件存在, 则追加数据 FILE *p = fopen("D:\\a.txt", "a"); if(p == NULL) { printf("File Open Failed !\n"); }else { // 如果文件不存在创建文件 // 如果文件存在, 则追加数据 fputs("hello\n", p); // 如果打开成功 , 则需要关闭文件 fclose(p); } printf("Main End\n"); return 0; }
该程序执行 2 22 次之后 , a.txt 文本中变成了两个 hello 文本 , 这是文件追加效果 ;
9、a+
a+ : 以 追加方式 打开读写文件 ,
如果文件不存在 , 则 创建文件 ;
如果文件存在 , 则新写入的数据会被 追加到文件末尾 , 文件原来的数据会被保留 ;
该操作与 a 操作区别是可读 ;
三、文件打开方式总结
r : 只读方式打开文件 , 文件必须存在 ; 文件不存在打开失败 ;
+ : 读写方式打开文件 ;
w : 打开只写文件 , 文件不存在创建文件 , 文件存在覆盖文件 ;
a : 打开只写文件 , 文件不存在创建文件 , 文件存在追加文件 ;