c++ - 从文本文件中读取并保存到列表
问题描述
我试图从一个名为 的文件中读取,该文件stock.txt
包含以下值:
ID、项目、颜色、尺寸、数量、价格
11,T-shirt,blue,XL,2,10.500000
12,Supreme,red,M,10,20.500000
13,BANG,red,M,10,20.500000
我想将每个项目存储在矢量列表中,我该怎么做?
int main() {
ifstream infile;
infile.open("Stock.txt");
string id; string title; string colour; string size; string quantity; string cost;
//If file open is successful
while(infile.good()){
getline(infile,id,',');
getline(infile,title,',');
getline(infile,colour,',');
getline(infile,size,',');
getline(infile,quantity,',');
getline(infile,cost,'\n');
}
infile.close();
}
然后目标是实现一个搜索功能,我可以从该列表中搜索特定项目(例如通过使用 ID 或标题)
解决方案
在您的数据结构和代码之间创建一些协同作用:
struct stock_item
{
std::string id;
std::string title;
std::string colour;
std::string size;
int quantity;
double cost;
};
一旦您能够stock_item
从文件中的一行创建一个,您就可以轻松地在任何地方/以任何方式存储和操作它:
std::vector<stock_item> some_vector;
stock_item some_stock_item;
// ...
some_vector.push_back(some_stock_item);
// ...
for (auto const& item : some_vector) {
std::cout << "Item #" << item.id << '\n';
}
所以你需要解析那个文件:
auto stocks_from_stream(std::istream& in)
{
std::vector<stock_item> result;
std::string stock_line;
while(std::getline(in, stock_line)) {
auto item = stock_from_string(stock_line);
result.push_back(item);
}
return result;
}
然后你需要定义这个stock_from_string
函数:
auto stock_from_string(std::string const& line)
{
stock_item result;
// parse your line here
return result;
}
瞧!
推荐阅读
- java - android的问题:来自类的数据不发送到活动
- c++ - C++:保存来自特定实例的方法的函数指针
- javascript - 如何创建多个对象,每个对象都加载相同的页面但在javascript中具有不同的数据?
- python-3.x - 如何单击 iframe 中的元素
- sql - 为什么此 Access 报表编辑基础查询?
- android - 如何使用 Frida 读取堆上的内存?
- azure - 将 lucene 模糊搜索和同义词与 Azure 搜索结合使用
- r - 使用 gsub() 提取文件名的一部分
- android - 密钥库问题----Android(google play store)----不接受证书
- javascript - 如何获得每行显示三个项目并均匀间隔的布局soi?