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;
}
热门推荐
舍利子是怎么形成的?为何普通人烧不出舍利子,高僧专属吗?
昔人已乘黄鹤去,此地空余黄鹤楼。黄鹤一去不复返,白云千载空悠悠。
茅茅虫论文写作:参考文献与附注的正确使用指南
如何有效去除疤痕疙瘩?有哪些推荐的方法和治疗方案?
2025年黄牌重机推荐:新手入门、价格、选购全攻略
企业裁员的合法之道:无过失性辞退实务指南
长得帅,气质硬,却都在当红时过早息影,这6位80年代男星,个个令人难忘
管理和监控API流量的方法
女性小腹总隐隐作痛 到底是身体哪里出了大问题
吴淡如《成为苏东坡》:女性视角下的心灵解构与历史重构
人事专员年终奖与13薪解析:从行业现状到未来趋势
高速公路路衍经济:从交通动脉到产业生态
煎饼果子制作教程:附面糊、薄脆、酱料详细做法
医联体助力 跨城搭建“健康桥”
“海鲜季”如何选购、科学食用海鲜你了解吗?
透过增值税发票看经济亮点
不是努力就好!打破成长型思维的常见迷思
数据速率翻倍,JEDEC发布最新DDR5与LPDDR6内存规范
从二级到一级:教师职称晋升的年限要求?
台式场发射扫描-透射(SEM—STEM)电子显微镜应用案例分享
《狂飙》为何能成为收视冠军?解密这部现象级电视剧的成功之道
椰子的营养价值与健康功效
河北廊坊发生4.2级地震!各类型手机如何打开地震预警?
告别炎热!家用空调选购指南
如何识别、预防和治理植物的白粉病
史莱克七怪:《斗罗大陆》系列中的传奇团队
逆袭之路:三年前错失中考的他们, 如何在安徽新华提前叩开高校大门?
艾叶泡酒方法:如何泡酒、比例、泡酒的功效与注意事项
学化妆师有前途吗?揭秘化妆行业的未来与机遇
剖析性格对着装方式的影响