HM156 档案尚未创建
HM156 档案尚未创建
来源: 第 156 集 职工管理系统-文件交互-读文件1-文件未创建
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
每次启动程序都应该尝试把档案读回内存。初始化其实有三种情况,本题只处理第一种:
- 文件还没创建(第一次使用):人数置 \(0\),职工指针数组置空,并记一个“文件为空”标志。
- 文件存在但被清空——下一题再做。
- 文件存在且已有记录——后面再读。
请在管理类中增加布尔成员 fileIsEmpty,表示档案是否为空。这个标志以后很有用:若当前是空的,就不必去做显示、修改、删除。
构造函数里用 ifstream 以 ios::in 打开宏常量给出的 empFile.txt。用 is_open() 判断:前面加 ! 表示打开失败,也就是文件不存在。此时应:
- 记录人数 \(=0\)
- 数组指针 \(=\) 空
fileIsEmpty = trueclose后立刻return,不要再做后续初始化
若文件已经存在,本题先不要按空档案去初始化,只报告它已存在。
输入格式
第一行一个整数 \(t\)(\(t \in \{0,1\}\))。
- \(t=0\):保证
empFile.txt不存在(若磁盘上有残留则先删掉),再构造管理对象。 - \(t=1\):先创建一份
empFile.txt(可以是空文件),再构造管理对象。
输出格式
- \(t=0\):共四行,依次为
文件不存在、人数、NULL(表示指针为空)、1(表示fileIsEmpty为真),每行末换行。 - \(t=1\):一行
文件已存在,行末换行。
样例
输入 #1
0
输出 #1
文件不存在
0
NULL
1
输入 #2
1
输出 #2
文件已存在
说明
- 判断“没有这个文件”的依据是
!ifs.is_open(),不是去猜文件名。 - 文件不存在时三个成员都要回到初始空状态,然后关闭流并返回。
fileIsEmpty为真时,后续不该对职工做显示、修改、删除。
信息
- ID
- 1155
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 2
- 已通过
- 1
- 通过率
- 50%
- 上传者