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个征兆教你一眼辨别
日本妖怪文化:从自然敬畏到民间传说
期货短线交易中常用的技术指标是什么?如何优化交易策略?
微信如何关联另一个微信号:智慧联动与高效管理
SM编程是什么
多晶硅价格最新动态:供需关系变化与产业链影响
攀枝花仁和区探秘:一场穿越历史与自然的旅行盛宴
锦鲤鱼鳍上有白点怎么办?学会这几部轻松解决
新能源汽车电池技术的现在和未来
如何辨别狗狗的肿瘤?从症状到治疗,正确识别良性与恶性肿瘤
新手必读:如何选购适合自己的摩托车?
中国5G网络规模全球最大!世界互联网大会蓝皮书还讲了啥
成为被执行人怎么应对
韩国历史最伟大的一位总统,他在晚年曾说过:“绝不与中国为敌”
充电宝额定容量和电池容量的区别
行车记录仪的安装和使用技巧有哪些?如何提高记录的清晰度?
成都公安:打造平安新“样板”
彩票中大奖不捐款,会面临什么后果?
《极盗车神》:飙车、犯罪、音乐,妥妥的爆米花电影
聋哑人就业困境:听力世界打开求职之门
苏联的情报部门克格勃如此强悍,为何却臭名昭著?
徐霞客:明朝的旅行家与旅游鼻祖
黄瓜从播种到结果大概需要多久?什么时候播种?怎么种植?
营养素补充剂该怎么选?做好这几点,给健康生活加分!
越南,历史深处的文化宝藏与经济崛起
研究显示:学生使用GPT-4 辅导6周=常规上课2年,参与度越高收获越大
专家解析:歼35六大优势超越F35
古琴艺术:承载千年文化的国乐瑰宝
静物摄影中背景和灯光的选择