int commodity::iFile() //文件读入 { struct Node { int cid; //商品编号 string cname; //商品名称 double cFprice; //进货价格 double cEprice; //售价 int crepertory; //库存 string cproducer; //生厂商 string cbrand; //品牌 string ctype; //类型 }; string filename = "D:\\commodity.txt"; ifstream F(filename, ios::in); int i = 0; cout << " int i = 0;"; while (!F.eof()) { cout << "!F.eof())"; // F >> z.cid >> z.cname >> z.cFprice >>z. cEprice >> z.crepertory >> z.cproducer >> z.cbrand >>z. ctype; v.push_back(z); /*v[i].id = cid; v[i].name = cname; v[i].Fprice = cFprice; v[i].Eprice = cEprice; v[i].repertory = crepertory; v[i].producer = cproducer; v[i].brand = cbrand; v[i].type = ctype; i++; cout << "while (!F.eof())"; cout << v[i].id<<endl; Sleep(10000);*/ }
时间: 2024-02-10 19:19:20 浏览: 115
基于Spark商品离线+实时推荐系统源码
在这段代码中,我们可以看到定义了一个名为 `Node` 的结构体,然后在文件读入的过程中,每次读取一行数据,将读取的数据存储到 `Node` 结构体的对应成员中,最后将 `Node` 结构体添加到了一个名为 `v` 的 vector 中。
在读取文件的过程中,代码使用了 `while (!F.eof())` 的方式来判断是否到达文件末尾,这种方式并不可靠,因为在读取文件时可能会出现其他错误。建议使用 `while (F >> z.cid >> z.cname >> z.cFprice >>z. cEprice >> z.crepertory >> z.cproducer >> z.cbrand >>z. ctype)` 的方式来判断是否读取成功。
此外,在读取文件时需要注意,文件中的数据类型需要与结构体中对应成员的类型一致,否则会出现数据类型不匹配的问题。
阅读全文