にファイルから複数の行を読んで私は、次のテキストファイルのレイアウトを持っている:C++クラス
者:ユージン・サンドバル; 26;男性
レポーター
アーティスト
パーソン:ヨハンナ・ギブス; 34;女性
サーカスワーカー
映画プロデューサー
銀行店員
最初の行にはその人に関する情報があり、次の行は前の仕事です。
これは私が作ったクラスです。
#pragma once
#include <string>
#include <vector>
class Person
{
public:
Person() {};
~Person() {};
std::string name;
std::string age;
std::string gender;
std::vector<std::string> previousJobs;
friend std::istream& operator >> (std::istream& is, Person& p)
{
std::string line;
std::getline(is, line);
std::istringstream iss(line);
std::getline(iss, p.name, ';');
std::getline(iss, p.age, ';');
std::getline(iss, p.gender, ';');
return is;
}
};
メイン:
int main()
{
std::vector<Person> people;
std::ifstream input_file("Resources/data.txt");
Person p
while (input_file >> p)
{
people.push_back(p);
}
getchar();
return 0;
}
は、これまでのところ私は、オブジェクトへの最初の行をsuccesfullの読んでいます。しかし、私は以前の仕事をベクターに読み込むことに苦労しています。
これで 'name'にはperson:"部分が含まれます。ストリームから行を読み終えたら、まずこの文字列をチェックし、一致すると 'name'、' age'と 'gender'を取得し、ストリームから行を読み込み、ベクトルに入れるようにしてくださいあなたは '' person: "'を含む別の行にヒットします。 – Unimportant
インターネットで "stackoverflow C++ read file struct"を検索します。すでに**テキスト**ファイル**から** struct **への** read ** ingの質問と例がたくさんあります。 –