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
热门推荐
Wiki的信息准确性问题
吞气症悄悄缠上你?3个简单方法告别腹胀打嗝!
无导线心脏起搏器的优缺点
五行不足的解析与补救方法
网红被质疑虐狗,是因为意识不到动物的情感需求?
2025年华南理工大学非全日制研究生招生简章
不再盲目选择!了解你的需求并挑选最合适的继电器!
周星驰新作曝进展,又是一波情怀杀?
心电图检查的意义和作用
德国第二大城市汉堡市留学指南
AI来了②丨DeepSeek“一石激起千层浪”,不同领域的“AI”充当什么角色?
如何通过长期投资实现盈利?长期投资的策略有哪些潜在风险?
重婚罪是自诉还是公诉
BitLocker 的作用是什么?如何开启或者关闭它?
跑步,才是治疗焦虑症的最好良药
10种旺财家居风水摆件,招财又旺宅
如何处理测试过程中的沟通问题
COP16专访|巴西如何借鉴中国“生态红线” 保护亚马逊雨林
挑战高海拔,平稳心态应对高原反应
劳务派遣工购买五险的利弊分析
如何选择外汇牌照:全面解析外汇交易平台的正规性与安全性
体检查出肺部结节,不同专家意见不一致,听谁?
五行十二长生:揭开阴阳五行背后的运势轮回
北京医学科学院肿瘤医院(东肿)CT 检查相关事宜全知道
一瓶啤酒的热量 盘点不同类型啤酒的热量差异
白莲花的象征意义与寓意(深入探索白莲花的文化内涵和精神价值)
全国心力衰竭日 | 从心出发,向心而行——早筛!早诊!早治!
老上海手作桂花糕:与记忆绑定的甜蜜味道
成都公积金贷款额度计算详解
兰州拉面:一碗面条中的文化与匠心