C语言文件指针——空指针NULL
fp==NULL (是否为空指针的表达式)
在 C 语言中,文件操作依赖文件指针来进行。当使用 fopen
函数打开文件时,该函数会返回一个文件指针,它指向被打开文件的相关信息。如果文件成功打开,fopen
会返回一个有效的文件指针;若打开文件过程中出现问题,比如文件不存在、没有权限访问、磁盘空间不足等情况,fopen
就会返回一个空指针 NULL
。
fp == NULL
就是对文件指针 fp
是否为 NULL
进行判断,若条件为真(即 fp
等于 NULL
),意味着文件打开失败;若条件为假(即 fp
不等于 NULL
),则表明文件成功打开。
#include <stdio.h>
int main() {
FILE *fp;
// 尝试以只读模式打开一个不存在的文件
fp = fopen("nonexistent_file.txt", "r");
if (fp == NULL) {
// 文件打开失败,输出错误信息
perror("无法打开文件");
return 1;
}
// 文件成功打开,进行后续操作
// ...
// 关闭文件
fclose(fp);
return 0;
}
举一个最近在赶的学生选课系统设计的例子
这是其中的一小部分
fp = fopen(COURSE_FILE, "rb");
if(fp == NULL) {
// 创建默认课程
Course default_courses[MAX_COURSE] = {
{"C001", "C语言程序设计", 50, 0, 3},
{"MATH", "高等数学", 100, 0, 4},
{"ENG", "大学英语", 80, 0, 2},
{"PHY", "大学物理", 60, 0, 3},
{"CHEM", "大学化学", 60, 0, 3},
{"PE", "大学体育", 120, 0, 1},
{"ART", "艺术鉴赏", 100, 0, 2}
};
fp = fopen(COURSE_FILE, "wb");
fwrite(default_courses, sizeof(Course), MAX_COURSE, fp);
fclose(fp);
} else {
fclose(fp);
}
这里先尝试以二进制只读模式(rb)打开课程文件
COURSE_FILE
,若fp == NULL
,说明文件不存在,程序会创建默认课程数据并将其写入文件;若文件存在,就直接关闭文件。通过这种方式,程序能处理文件不存在的情况,保证系统正常运行。
上一篇: 把 C# 里不再使用
下一篇: Mybatis-Pl