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;
}
热门推荐
云原生--微服务、CICD、SaaS、PaaS、IaaS
如何选择合适的除湿机容量?
外商资本金对中国经济发展的影响分析
临时停车在禁止停车标志区域会被处罚吗
马来西亚化学硕士留学指南:课程设置、就业前景及申请条件详解
如何打开和配置Windows本地安全策略以增强系统安全性
深度解读重庆住房公积金四大新政,贷款到期时间延长的影响是什么?
新疆,为何《非来不可》
员工不辞而别,劳动关系会自动解除吗?用人单位该如何应对?
完整设计方案4步走:从需求分析到设计验证,打造卓越项目
打印机可以打印但是无法扫描怎么办?5个方法快速解决
美团、京东金融等平台暴力催收不断,网贷乱象何时休?
四川故新教育:研究生考研必备注意事项
集成供应链在降低运营成本和提高利润率方面有何优势?
张雪峰谈视觉传达设计专业:2025就业前景如何?
不是容颜易老,还是你喝茶太少
“财产保全”攻略来啦,请查收
盗窃未遂算不算多次盗窃
中文文献引用的格式规范和引用的常见误区
痛经的饮食宜忌全攻略
单枞茶与普洱茶提神效果大不同,究竟哪种更适合你?
曲阜:“一块田” 稻田、花田、菜田,田田开出致富花
三菱FX5U的RS-485口SG引脚经常烧坏原因分析及解决方法
年度最佳操作:如何把握纳指ETF的上涨趋势
BEC口语考试全面攻略:从面试到讨论的应试技巧
抑郁症患者应该如何保持健康
汽车过户需要本人去吗?车辆过户委托书怎么写
德州GTO是什么意思?GTO策略入门讲解
广州教育大变革:2025年计划增1万个高中学位
PC十大必玩单机游戏有哪些?如何选择适合自己的游戏?