HM156 档案尚未创建

HM156 档案尚未创建

HM156 档案尚未创建

来源: 第 156 集 职工管理系统-文件交互-读文件1-文件未创建

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

每次启动程序都应该尝试把档案读回内存。初始化其实有三种情况,本题只处理第一种:

  1. 文件还没创建(第一次使用):人数置 \(0\),职工指针数组置空,并记一个“文件为空”标志。
  2. 文件存在但被清空——下一题再做。
  3. 文件存在且已有记录——后面再读。

请在管理类中增加布尔成员 fileIsEmpty,表示档案是否为空。这个标志以后很有用:若当前是空的,就不必去做显示、修改、删除。

构造函数里用 ifstreamios::in 打开宏常量给出的 empFile.txt。用 is_open() 判断:前面加 ! 表示打开失败,也就是文件不存在。此时应:

  • 记录人数 \(=0\)
  • 数组指针 \(=\) 空
  • fileIsEmpty = true
  • close 后立刻 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%
上传者