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;
}
热门推荐
吃完饭到底应该坐着、站着还是躺着?这份指南请收好
《妈妈你真棒》:一首触动人心的感恩之歌
长期说梦话怎么治
现代简约风网页设计的导航栏设计原则与技巧
5斤车厘子到手差1斤!直播间里的带货乱象:播完就下架
木卫二:小小身躯藏大海,能否孕育生命之谜待解?
如何有效纠正宠物的不良行为
普陀教育强校林立,重点学校多。附普陀小初高梯队排名
刷牙时恶心干呕怎么办?专业医生给出实用解决方案
同是姻亲,蒋介石为何选择孔祥熙取代宋子文任财长?
如何选择合适的汽车贷款方案以减轻经济压力?这些选择标准有哪些潜在的风险?
发霉的衣服别急着扔掉,用这种“水”泡一泡,轻松去除霉斑!
超全攻略!长沙周边5条爬山线路,吃、住、玩全部安排!
趣联妙对,上联:竹影摇曳风中舞。高才请赐对
弧度:让数学更简单的角度单位
元素周期表怎么记忆 有哪些方法
深入理解与欣赏小说的魅力:从类型到情感的多维探索
重庆高校专利拍卖首秀:百万成交,开启产学研深度融合新篇章
【影像清晰化秘技】:ArcGIS遥感影像增强技术的应用详解
奉贤消防中心宣传科的“何老师”,您露馅了!
西洋建筑风格影响下的近代中国建筑设计
天热脸就发红发烫怎么调理
购房协议包括哪些内容?如何防范风险?
琴叶榕冬季养护指南(温度、光照、水分三重要素)
如何避免客户开发信沦为垃圾邮件:提升邮件群发效果的26个方法
新交规出台后,高速开到144也没事了?别被误导了
德媒详解足球战术词汇:伪九号、非对称边后卫等战术解析
范仲淹家风家训:清心不欺事 襟怀照古今
维生素E的功效与作用
坟前种罗汉松寓意及墓地适宜树种解析