2016-09-17 5 views
-4

私は、学生のデータをテキストファイルから非STLデータ構造に読み込む必要があるプロジェクトに取り組んできました。これは、このようなデータを持っている:C++のクラスに不規則なテキストファイルからデータを読み込む

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)で、スペースなどのデータを持っている(私はラインに気づきますいらない)。これまでは、1つのコースのデータを保存するコースクラスを作成しました。次に、コースとSGPAの配列を持つセメスタークラス、そしてセメスターとCGPAの配列を持つ学生クラス。私はSTLを使用することが許可されていないので、私は配列を使用しています。私は配列がいくつかのストレージを無駄にするかもしれないが、私のカスタムリストクラスを作成するような何かを使うとずっと遅くなることがわかった。私は200人以上の学生のためのデータを持っており、1つは学期ごとに5から7の間で変化するコース数で3から7学期を勉強しました。練習としては、STLやC++の文字列ライブラリ以外の組み込みライブラリを使用することはできません。私はgetl​​ineを使って1行を選んだ後、いくつかの条件を使ってそれがコースかどうかを調べました。しかし、意図したとおりに動作しません。次に、不要な行(空白やヘッダ名など)を無視する方法を理解することができません。データ操作のためにこのような不規則なテキストファイルにどのように対処できますか?どんな助けでも大歓迎です。

+0

正規表現をお勧めします。 http://www.cplusplus.com/reference/regex/ –

+0

私は質問を編集させてください –

+2

"このような不規則なテキストファイルに取り組むのはとても簡単です" - それを行うためのコードを書くだけです。あなたの質問は、次のいずれかでなければなりません: "私はこれを行うための論理的なアルゴリズムを理解することはできません"。または "私は論理アルゴリズムが何であるか知っていますが、私はそれをC++に変換できません"。前者の場合、これはC++とは関係ありません。ロジックは、C++、Java、Perl、Python、その他何かにコード化されていても同じです。後者の場合は、質問を編集し、すでに行った作業を示し、欠落しているものを説明し、C++に変換する方法を理解できない部分を説明する必要があります。 –

答えて

0

私はテキストファイルを解析しました:)テキストを1行ずつ取り出し、string::findstring::substrを使用すると、作業がはるかに簡単になりました。私の質問@Samにあなたの提案をありがとう。

関連する問題