【问题标题】:Working with files I/O for beginners [closed]为初学者处理文件 I/O [关闭]
【发布时间】:2015-03-03 22:22:42
【问题描述】:

大家好,我正在使用 C++ 中的文件 I/O 处理一个学校初学者项目,

这个程序由两部分组成: 1)读取和处理学生数据文件,并将结果写入学生报告文件 2)修改第1部分以计算一些统计数据并将它们写入另一个文件。 对于这个作业,您将读取一个输入文件并写出另外两个文件。

您的程序将使用引用的学生数据文件运行。

第 1 部分详细信息

读入学生数据文件。这个 50 条记录文件包含一个(8 位数字)学生 ID、8 个作业点、期中点、期末点和实验室练习点。您必须再次按照教学大纲规范确定字母等级,这一次,处理 50 个学生成绩。额外学分不适用于此作业。您将输入的学生数据和处理结果写入学生报告文件,该文件如下所示。除了输入的学生数据外,报告还应包含作业成绩的“总分”、所获得的所有分数的总分和百分比,以及字母等级。您可以假设输入数据文件不包含任何错误数据。

该文件如下所示: The file that we need to read from is hyperlinked here

学生报告输出文件应如下所示:

学生报告输出文件

Student  --- Asignment Grades -- Ass Mid Fin LEx Total Pct Gr
-------- -- -- -- -- -- -- -- -- --- --- --- --- ----- --- --
56049257 16 16 20 16 12 15 12 20 115  58 123  59   355  89 B+
97201934 19 15 13 19 16 12 13 18 113  72 101  55   341  85 B 
93589574 13 16 19 19 18 12  6 14 111  58 108  50   327  82 B 
85404010 17 19 19 19 19 10 17 19 129  70 102  58   359  90 A-
99608681 11 15 19 19 17 10 16 19 116  42 117  57   332  83 B 
84918110 11 20 18 17 12  8 12 19 109  46 122  31   308  77 C 
89307179 16 16 19 18 14 17 15 19 120  56 117  52   345  86 B 
09250373 15 15 18 18 11 18 17 19 120  44 106  51   321  80 B-
91909583 12 14 16 19 20 11 20 16 117  66  92  50   325  81 B- 
...

第 2 部分详细信息

编写一个总结报告文件,其中包含所有学生的平均总分和平均百分比。此外,显示学生的 A、B、C、D 和 F 的数量。您的摘要输出文件应如下所示:

The average total points = ???
The average percent total = ??
The number of A's = ??
The number of B's = ??
The number of C's = ??
The number of D's = ??
The number of F's = ??

其他要求

  1. 必须检查所有文件是否成功打开。当您完成它们时,它们也应该关闭。
  2. 确保在适当的情况下使用前导 0 编写学生 ID(即第 8 个 ID)。
  3. 在输出报告文件中添加标题。它们应该对齐并正确识别列数据。
  4. 不要在解决方案中使用全局变量,常量除外。

对于第 1 部分,我如何复制文件并对其进行格式化以将其上方的标题和每个文件末尾的等级添加到新的复制文件中??

在此问题上的任何帮助将不胜感激 提前致谢。

【问题讨论】:

  • 在 StackOverflow 中搜索“c++ 从文件结构中读取”。例子太多了。
  • 首先:整洁的格式。但是“Gimmy tha code plz”——对于 SO 来说,问题通常太宽泛了。尝试自己,然后在遇到特定问题时询问。
  • 顺便说一下,您应该发布您的尝试并说明您遇到问题的地方。编译器消息、链接器消息和运行时消息应逐字作为文本发布,而不是屏幕快照。
  • 你写过代码吗? SO 不会为您编写程序,但是一旦您自己编写程序,我们将非常乐意帮助您解决任何问题。
  • 如何复制文件并将成绩和标题添加到新文件中?第 1 部分?我是否将文件中的所有数字都添加到变量中?

标签: c++ file ifstream ofstream


【解决方案1】:

工程就是将一个大而复杂的问题转化为许多更小、易于解决的问题。

这是我的开始。

1.) 打开输入文件。

2.) 从输入文件中读取一行。

3.) 将输入字符串从一行分解成值。

4.) 关闭输入文件。

5.) 打开输出文件。

6.) 将结果写入输出文件。

参考资料: 1.)File I/O 2.)std::string 3.)File I/O C 现在你已经差不多了。一步一步来。

【讨论】:

  • 还没有学过string类还得不用它!(第3步)
  • 您是否能够从文件中读取?从那里开始。
  • 添加了指向“C 风格”文件 I/O 的链接。如果你没有使用 std::string,那么你的代码就不是真正的 C++。
  • 我能够读取输入文件,但无法读取第 8 行中的前导 0(零)......我该怎么做??
  • 好的,我得到了我需要使用 setfill('0') 读取前导 0 的部分
猜你喜欢
  • 2017-02-05
  • 2020-06-26
  • 1970-01-01
  • 2018-05-20
  • 2011-03-17
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
相关资源
最近更新 更多