【问题标题】:Reading data from an irregular text file to a class in C++从不规则文本文件中读取数据到 C++ 中的类
【发布时间】: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


【解决方案1】:

所以我已经完成了对文本文件的解析 :) 我逐行选择文本并使用string::findstring::substr,工作变得容易多了。感谢您对我的问题@Sam 的建议。

【讨论】:

    猜你喜欢
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2013-04-20
    相关资源
    最近更新 更多