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
热门推荐
英超 利物浦VS南安普敦 背水一战 生死对决 战术分析 阵容预测 比
王西瑶:科技助力马铃薯产业发展
比利亚雷亚尔主场状态平平 阿拉维斯虽反弹但客场表现乏力
大数据与人工智能在智能驾驶技术中的深度应用
STM32F407标准库时钟设置详解
健康饮食的黄金法则:迈向长寿与青春的秘诀
心肌缺血的六大检查方法
空气开关取代了保险丝,什么是空气开关,空气在其中起什么作用?
森林防火智慧应急指挥系统解决方案
林火遥感:森林防火守护者
第一次理财的新手,该如何进行理财投资?
旁路由的设置和调整技巧
聊天时如何转换话题
不同脸型如何选择合适的眉形
正宗西湖龙井茶多少钱一斤?一文看懂各等级正宗龙井茶合理价格
四川盆地是一个特殊的存在,它的地理位置和气候条件十分特殊
看病也要“预习”?这些经验分享给您
Cat5e网线是否支持千兆网络?详解其性能与适用场景
Cat5e网线是否支持千兆网络?详解其性能与适用场景
一年用车成本有多少?看完你就有数了!
月薪5000,怎么买车用车压力才不大?
月薪2万左右前,可以配什么样的车?
走进“大明的世界”,看明代人眼中的“世界”
朝霞 朝霞 什么的朝霞?惊艳!朝霞!各种奇妙的朝霞景观!!
高等教育数字化转型—AI重构课程建设与教学改革研讨会顺利举办
库尔勒出发 | 四川九寨沟七日游完整攻略:含路线规划、住宿指南与省钱技巧
学生群殴案件的法律分析与社会影响
52岁男子坚持饮用姜茶两年,成功治愈胃病
总价包干和单价包干(详解、区别、适用场景)
二氧化氯消毒液配比浓度表及计算方法详解