我正在尝试从文件中读取数据并使用它来填充 vector 。

它是vector对象的Score
Score类只有两个变量,一个int变量和一个char*变量。

对于每个Score对象,这是文件中仅有的两条数据。

在文件中,有一个乐谱(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

预先感谢您的任何帮助!

最佳答案

给定的Score类;

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

您将需要一个提取运算符(operator >>)来获取流,并且需要使用这种类型(Score),然后您所使用的技术就可以起作用(这需要更改类型);
std::ifstream& operator>>(std::ifstream& fs, Score& s)
{
  // construct sentry as required
  fs >> s.score;
  fs >> s.time;
  return fs;
}

注意;鉴于OP中数据格式的相对缺乏细节,我省略了对时间等的错误检查,并省略了哨兵对象来专注于代码使用流提取运算符的能力。

关于c++ - 使用从文件读取的数据填写对象 vector ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38616243/

10-11 22:05
查看更多