C语言中使用fopen()打开和操作文件的详细指南
创作时间:
作者:
@小白创作中心
C语言中使用fopen()打开和操作文件的详细指南
引用
CSDN
1.
https://m.blog.csdn.net/mzgxinhua/article/details/139688304
文件模式的解释与详细说明
在C语言中,fopen()
函数用于打开指定的文件。其基本语法如下:
FILE *fopen(const char *filename, const char *mode);
其中,filename
是要打开的文件名,mode
是打开文件的方式。以下是fopen()
支持的有效模式:
'r'
:以只读方式打开文件,文件必须存在。'w'
:以写方式打开文件,若文件存在则清空文件内容,若文件不存在则创建新文件。'a'
:以追加方式打开文件,写入的数据会添加到文件末尾,若文件不存在则创建新文件。'r+'
:以读写方式打开文件,文件必须存在。'w+'
:以读写方式打开文件,若文件存在则清空文件内容,若文件不存在则创建新文件。'a+'
:以读写方式打开文件,写入的数据会添加到文件末尾,若文件不存在则创建新文件。
fopen()
返回值的处理
fopen()
函数返回一个指向FILE
类型的指针,如果打开文件失败,则返回NULL
。因此,在使用fopen()
打开文件后,应该检查返回值是否为NULL
,以确保文件成功打开。
代码示例
使用fopen()
以写模式打开现有文件
如果要打开的文件不存在于当前目录中,则会创建一个新的空文件,并以写模式打开。如果文件存在且以'w'
或'w+'
模式打开,则在写操作之前文件内容会被删除。
示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
// 以写模式打开文件
FILE *opFile = fopen("test.txt", "w");
if (opFile == NULL) {
puts("Couldn't open file");
exit(0);
} else {
fputs("includehelp", opFile);
puts("Write operation successful");
fclose(opFile);
}
return 0;
}
输出:
Write operation successful
说明:初始文件内容 - C programming language
写操作后的内容 - includehelp
写操作会删除文件中已有的所有内容,然后写入新内容。为了解决这个问题,C语言提供了两种不同的方法,程序员可以根据需要选择:
'a'
(追加模式)- 这种模式会将新内容追加到文件内容的末尾。'wx'
模式 - 如果文件已存在于目录中,则返回NULL
。
使用'a'
模式对现有文件进行写操作
示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
// 以追加模式打开文件
FILE *opFile = fopen("test.txt", "a");
if (opFile == NULL) {
puts("Couldn't open file");
exit(0);
} else {
fputs("includehelp", opFile);
puts("Write operation successful");
fclose(opFile);
}
return 0;
}
输出:
Write operation successful
说明:初始文件内容 - C programming language
追加操作后的内容 - C programming language includehelp
使用'wx'
模式对现有文件进行写操作
示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
// 以 'wx' 模式打开文件
FILE *opFile = fopen("test.txt", "wx");
if (opFile == NULL) {
puts("Couldn't open file");
exit(0);
} else {
fputs("includehelp", opFile);
puts("Write operation successful");
fclose(opFile);
}
return 0;
}
输出:
Write operation successful
说明:使用'wx'
模式,如果文件已存在,则会返回NULL
并退出,不会覆盖文件内容。
补充示例:r+
和w+
模式的使用
- **
r+
模式:**用于读取和写入文件,但文件必须存在。
示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
// 以 'r+' 模式打开文件
FILE *opFile = fopen("test.txt", "r+");
if (opFile == NULL) {
puts("Couldn't open file");
exit(0);
} else {
fputs(" new text", opFile);
puts("Write operation successful");
fclose(opFile);
}
return 0;
}
- **
w+
模式:**用于读取和写入文件,如果文件不存在则创建新文件,存在则清空内容。
示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
// 以 'w+' 模式打开文件
FILE *opFile = fopen("test.txt", "w+");
if (opFile == NULL) {
puts("Couldn't open file");
exit(0);
} else {
fputs("includehelp", opFile);
puts("Write operation successful");
fclose(opFile);
}
return 0;
}
本文原文来自CSDN
热门推荐
成都风湿医院陈建春主任详解:痛风患者如何通过饮食管理控制病情
四川大学华西医院:痛风患者的理想选择
成都风湿医院:专注痛风治疗的专科医院
生地的21种临床运用经验
生地搭配这些中药材,有效祛湿热
安阳周边最美自然风光:太行大峡谷&红旗渠
探访安阳:殷墟与红旗渠的文化之旅
南方元素闪耀2025央视春晚,收视率再创新高!
2025央视春晚:这些节目为何被网友疯狂吐槽?
哈尔滨冰雪大世界:125路公交直达,240元起玩转冰雪城堡
哈尔滨125路公交出行全攻略:线路站点、运营时间及票价信息
冬天如何对蜜蜂饲喂糖水,在饲喂器中添加糖浆再放入蜂箱中即可
99%的人都喜欢的西红柿鸡蛋面,解馋味美又饱腹,味道嘎嘎好吃
天津周边绝美岛屿,今夏必打卡!
深秋打卡:天津水上公园&威尼斯水城
河道防渗膜:守护河流生态的新宠儿
防渗膜:环保界的超级英雄!
安阳三日游:打卡红旗渠与中国文字博物馆
孕妇心率快的缓解方法
KPI在质量控制中如何发挥作用
明代宜兴鸭农意外发明皮蛋:中华美食传奇
棠湖中学揭秘皮蛋背后的化学奥秘
胎心监护:让准妈妈听见孕期最动听的声音
京东健康万药师提醒:缓释片用药期间的饮食禁忌
硝苯地平缓释片:为什么一天只服一次?错误服用会怎样?
天津汽车限号,城市交通的变革与思考
防渗土工膜:守护生态的新利器
从王维劝酒诗看古今酒文化的演变与职场智慧
从明代宜兴到世界餐桌:一颗皮蛋的传奇之旅
广安盐皮蛋:一颗蛋的乡村振兴之路