gpt4 book ai didi

c++ - 将文件读入由类项组成的 vector 中

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:30:08 26 4
gpt4 key购买 nike

假设我有一个文件

ID  Name    Month   Actual Quantity     Desired Quantity    Cost 
2 pepsi 1 1 3.3
3 pepsi 2 3 5.3

我如何将其读入名为 vector<Item> items 的 vector 中? ;其中 Item 是由列表中列出的那些名称组成的类。我有一个 set() 方法用于所有这些,但我如何读取每个值之一并设置它,例如 setID() 及其值,如果它为空,则将值 -1。到目前为止我所拥有的只是一个打开的基本文件

char file_name[81];
cout<<"Enter a file to open (ex: file.txt): ";
cin.ignore();
flush(stdin);
cin.getline(file_name, 81);
ifstream input(file_name);

我应该使用 istringstream 还是什么?

更新:

  char file_name[81];
cout<<"Enter a file to open (ex: file.txt): ";
cin.ignore();
cin.getline(file_name, 81);
ifstream input(file_name);
string line;
getline(input,line);
while (getline(input,line)){

但我得到一个错误:语句无法解析重载函数的地址:ifstream input(file_name)

最佳答案

我会做的是开始编写一个合适的输入运算符:

std::istream& operator>> (std::istream& in, Item& item) {
...
}

一旦此运算符就位,您就可以使用如下方式读取文件:

std::vector<Item> items;
input.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::copy(std::istream_iterator<Item>(input), std::istream_iterator<Item>(),
std::back_inserter(items));

关于c++ - 将文件读入由类项组成的 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13337146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com