我正在寻找一种只读取文本文件中特定数据集的方法。后来我需要"饲料"包含它内容的类,并将对象存储在向量中。
我的问题是,我不需要线条的全部内容,并且想要丢弃或忽略接下来的内容并跳转到文本的下一行。
如果您有解决方案或提示,我将非常高兴:)
文件中的每一行结构如下:
品牌modelName yearOfProduction价格moreStuffIDontCareAbout
这是我到目前为止所提出的。
while (inputFile >> brand >> modell >> yearofproduction >> prize) {
vecBikes.push_back(Bike(brand, modell, yearofproduction, prize));
getline(inputFile, puffer);
}
答案 0 :(得分:-1)
可以通过在部分之前放置delimiter charcter来解决这个问题。
然后为getline()
函数设置自定义分隔符
代码:
while (getline (inputFile,puffer,(delimiter))
{
}
答案 1 :(得分:-1)
我们假设您有一个Bike
类定义。
struct Bike {
std::string brand, model;
int year, price;
};
然后我建议你为类Bike
定义一个输入操作符。
std::istream& operator>>(std::istream& in, Bike& b) {
if (std::string line; std::getline(in, line)) {
std::istringstream line_stream{line};
line_stream >> b.brand >> b.model >> b.year >> b.price;
}
return in;
}
(注意使用C ++ 17 if-with-initializers语法)。
现在只需构建一个std::istream_iterator
对来填充任何输入流中的向量(假设这里称为流input
)。
std::vector<Bike> vecBikes{std::istream_iterator<Bike>{input},
std::istream_iterator<Bike>{}};