ファイルを 1 行ずつ読み取り、その行をトークン化する単純なファイル パーサーを C++11 で実装するのに問題があります。リソースを適切に管理する必要があります。パーサーの使用法は次のようにする必要があります。
Parser parser;
parser.open("/path/to/file");
std::pair<int> header = parser.getHeader();
while (parser.hasNext()) {
std::vector<int> tokens = parser.getNext();
}
parser.close();
したがって、Parser
クラスには 1 つのメンバーstd::ifstream file
(またはstd::ifstream* file
?)が必要です。
1) コンストラクターはどのように初期化する必要がありますthis->file
か?
open
2)メソッドthis->file
は入力ファイルにどのように設定する必要がありますか?
3) ファイルの次の行をどのように文字列にロードする必要がありますか? (これはあなたが使うものですか:)std::getline(this->file, line)
?
アドバイスをいただけますか?理想的には、クラスをコード例としてスケッチしていただけませんか。