我正在尝试从文件中读取数据并使用它来填充 vector 。
它是vector
对象的Score
。Score
类只有两个变量,一个int
变量和一个char*
变量。
对于每个Score对象,这是文件中仅有的两条数据。
在文件中,有一个乐谱(int
)和一个时间(char*
),然后是新行。
这些是我试图从文件中读取的内容,用以填充vector
的Score
。
我看到了一些示例,例如:
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/