C语言中使用fopen()打开和操作文件的详细指南
创作时间:
作者:
@小白创作中心
C语言中使用fopen()打开和操作文件的详细指南
引用
CSDN
1.
https://blog.csdn.net/mzgxinhua/article/details/139688304
文件模式的解释与详细说明
在C语言中,fopen()函数用于打开指定的文件。其基本语法如下:
FILE *fopen(const char *filename, const char *mode);
其中,filename是要打开的文件名,mode是打开文件的方式。以下是常用的文件模式:
'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;
}
热门推荐
你真的会喝小米粥吗?胃炎食管炎患者的福音!
玛巴洛沙韦和奥司他韦的作用机制、用药方式、适用人群以及不良反应的区别
99%以上为甲流 奥司他韦、玛巴洛沙韦怎么用?一篇给你讲清楚
经期吃巧克力:该不该?怎么吃?专家来支招!
经期吃巧克力,医生说:别贪嘴!
经期吃巧克力真的能改善心情吗?
金弹子的养护技术
浴室清洁全攻略:从技巧到产品,一文搞定你的清洁烦恼
乒乓球横板球拍的正确握法,发球时如何发挥手腕的灵活性
邓婵玉表情包刷屏,那尔那茜回应来了!
八字十干禄绝详解:福禄与绝地的玄机
张家界风光摄影攻略:如何拍出山青水秀的大片
王维《青溪》:诗中有画的山水意境
奥美拉唑:胃痛救星,你用对了吗?
秋冬护胃全攻略:五时五类用药指南
职场人必备:快速缓解胃痛的小妙招
揭秘儿童零食偏好:不仅是口感,更是心理需求
春节零食大作战:如何守护孩子舌尖上的安全?
南京市妇幼保健院专家:科学管理儿童零食,助力健康成长
心肝脾肺肾的位置在哪
杜牧笔下的“山青水绿”:从《江南春》看其山水诗的独特魅力
浙江获“地球卫士奖”:从“千万工程”到EOD模式的环保创新之路
婚前房产过户给父母,你了解这些税务吗?
婚前房产过户给父母,三种方式优劣全解析
4.7万年前智人和尼安德特人疯狂杂交,科学家发现Y染色体有点不对
现代人从尼安德特人那里继承的基因被发现越来越多 自闭症也是其中之一
DNA揭秘:高鼻子是早已灭绝的古人类尼安德特人的遗传特征
S-布洛芬:高效止痛的秘密武器
布洛芬+咖啡=胃痛警告!
布洛芬滥用致肾损伤,专家提醒:这6类人需谨慎使用