2016-07-27 13 views
1

ファイルからデータを読み取り、それをベクターに書き込もうとしています。ファイルから読み取られたデータを使用してオブジェクトのベクトルを入力してください

vectorScoreのオブジェクトです。

クラスは、intという変数とchar*という変数の2つの変数しか持っていません。

これらは、各スコアオブジェクトのファイル内の唯一の2つのデータです。

ファイルには、スコア(int)と時間(char*)があり、新しい行があります。

これらは私がvectorScoreを埋め込むためにファイルから読み取ろうとしているものです。

私のようないくつかの例を見てきました:

std::ifstream ifs("data.txt"); 
std::copy(std::istream_iterator<double>(ifs), std::istream_iterator<double>(), 
     std::back_inserter(values)); 

は、しかし、私は、オブジェクトの代わりに、変数を使用して、それを複製することができませんでした。

どうすればいいですか?必ずしもistream_iteratorを使用する必要はありません。

ありがとうございました!

答えて

2

Scoreクラスの場合、

struct Score { 
    int score; 
    std::string time; 
}; 

あなたは(それはタイプの変更が必要になります)、あなたが使用している技術が動作するはずです、ストリーム、およびこのタイプ(Score)のための抽出演算子(operator >>)が必要になります。

std::ifstream& operator>>(std::ifstream& fs, Score& s) 
{ 
    // construct sentry as required 
    fs >> s.score; 
    fs >> s.time; 
    return fs; 
} 

。 OPのデータフォーマットの詳細が不足しているため、時間などのエラーチェックを省略し、ストリーム抽出演算子を使用するコードの能力に焦点を当てるようにセリオブジェクトを除外しました。

関連する問題