【发布时间】:2023-03-29 17:46:02
【问题描述】:
我一直在从事一个项目,该项目需要我将学生数据从文本文件读取到非 STL 数据结构。它有这样的数据:
semester 1
Code Course Title Crd Pnt Grd Rmk <----(This line is of no use to me :/)
<----(This line is of no use to me :/)
code1 course1 1 3.33 B+
code2 course2 3 3 B
code3 course3 3 3 B
semester2
Code Course Title Crd Pnt Grd Rmk
code1 course1 1 3.33 B+
code2 course2 3 3 B
现在你可以看到,文本文件有一些不规则的结束字符(\n)和空格以及我不需要的数据(注意我不需要的行)。到目前为止,我已经制作了一个课程类来存储单个课程的数据。然后是包含一系列课程和 SGPA 的学期课程,然后是包含一系列学期和 CGPA 的学生课程。我正在使用数组,因为我不允许使用 STL。我知道数组可能会浪费一些存储空间,但使用其他任何东西(比如制作我的自定义列表类)会慢得多。我有 200 多名学生的数据,每个学生都学习了 3 到 7 个学期,每学期的课程数量在 5 到 7 门之间。作为练习,我不能使用 STL 或除 c++ 字符串库之外的其他内置库。我尝试使用 getline 选择单行,然后使用一些条件来检查它是否是课程。但它不能按预期工作。其次,我无法弄清楚如何忽略我不需要的行(例如空格和课程名称的标题等)如何处理这种不规则的文本文件以进行数据操作?任何帮助将不胜感激。
【问题讨论】:
-
我建议使用正则表达式。 cplusplus.com/reference/regex
-
让我编辑问题
-
“处理这种不规则的文本文件”非常容易——只需编写代码即可。您的问题必须是:“我想不出一个逻辑算法来做到这一点”;或“我知道逻辑算法是什么,但我无法将其翻译成 C++”。在前一种情况下,这与 C++ 无关。逻辑是相同的,无论是用 C++、Java、Perl、Python 还是其他任何方式编写的。在后一种情况下,您需要编辑问题并显示您已经完成的工作,并说明缺少的内容以及您无法弄清楚如何翻译成 C++ 的部分。
-
感谢您告诉我这个问题我哪里错了。我已经对其进行了编辑。
标签: c++ string data-structures text-files file-handling