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;
}
热门推荐
做菜时怎样才能减少嘌呤物
“糖友”们学起来!六个控糖策略助您有效应对糖尿病
“16 8”“5 2”怎么选?“打工人”轻断食指南(实用版)
适合200斤胖子的减肥运动
Excel中调整坐标轴标签位置的10种方法
家庭收纳的艺术:让空间整洁有序
微博热搜算法升级:公众属性引领内容新方向
人脸识别技术,我们是在追求安全还是便利?
中心静脉压是什么
新加坡:从边缘小岛到世界瞩目的璀璨之星
“睡门永存”VS“熬门自由”,你是哪一种?
自己现用姓氏能改掉吗?四川“肖”姓网友欲改回家族原姓氏“萧”被拒
联影智能研发胸部CT三维重建AI系统,拥抱胸外科精准诊疗新路径
槟榔致癌争议未休:一亿食用者,欲罢不能?
如何在相亲场合恰当地展示自己
所有电池,都属于有害垃圾吗?
国王杯情报:巴萨新星出战成疑,马竞中后场两将确认缺席
新手必看!手机内存卡使用指南,避免常见误区!
曼城夏窗大清洗!4大队长领衔 八名功勋面临离队
如何进行国债投资?这种投资方式有哪些风险和决策?
色素痣的治疗方法
曲屏手机贴膜新选择:钢化膜VS软膜,谁更胜一筹?
中文维基百科创建指南:从入门到精通
准确识别药品剂量,防止药物副作用案例解析
2025年深圳北理莫斯科大学本科招生政策解读:631模式详解
风寒感冒可以用藿香正气水治疗吗
高血压患者可以吃牛肉吗?需要注意什么?
4-7-8呼吸法帮助睡眠吗
西北大学土木工程专业课程设置详解
盐酸特比萘芬乳膏和喷雾剂哪个好?