3

私は、ファイルから文字列の2Dテーブル('string table [] []'と呼ばれる)にテキストを読み込む必要があるクラスの問題に取り組んでいます。私が読んでいるテキストファイルは次のようにフォーマットされています:

アインエルベイダ#-#-#OEB#アルジェリア#アフリカ#F#42578#61997#90560 ##

セグバナ#-#-#ALI#ベニン#アフリカ#F#-1#10219#-1 ##

スケルマーズデール#-#-#LAN#イングランド#ヨーロッパ#F#42611#42104#39279 ##

ご覧のとおり、各フィールドは「#」で区切られ、行の終わりは2つの#で示され、ファイルの終わりは3つの#で示されます。配列に保存できるように各フィールドを分離するいくつかの異なる方法を検討してきましたが、これまでのところ、私の目的に適したものは見つかりませんでした。

私はこれに数時間頭をぶつけてきました、そしてこれを機能させる方法についてアドバイスをいただければ幸いです。

4

1 に答える 1

3

区切り文字を指定できるため、の使用を検討してstd::getlineください(この場合、区切り文字はです#)。

std::ifstream file("somefile.txt");
std::string field1;
std::getline(file, field1, '#'); // Ain el Beida

ただし、各フィールドは実際にはスペースと。で区切られている#ため、場合によっては先頭/末尾に空白が表示されることに注意してください。

これはクラス用なので、残りを理解させてあげましょう!

于 2011-09-25T04:25:47.500 に答える