gpt4 book ai didi

c++ - 文件到数组再到结构

转载 作者:行者123 更新时间:2023-11-30 05:26:59 24 4
gpt4 key购买 nike

我正在研究这个帮助管理 DVD 出租店的程序。我要做的是获取包含有关 DVD 等信息的文本:

卑鄙的女孩;喜剧; PG; 2009;里贾纳·乔治; 2015 年 7 月 12 日;

招魂;恐怖; R; 2013;萨拉·约翰逊; 2016 年 5 月 16 日;

口袋妖怪 2000; children ; G; 2000;阿什卡彻姆; 15.04.2016;等..

然后获取此信息,然后将其读入一个数组,然后从那里将数组读入结构,然后按正确的顺序显示,如下所示:名称:卑鄙的女孩类型:喜剧等级:PG

等...

到目前为止,这是我的代码:

#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;

struct dvd{
string name;
string genre;
string rating;
string released;
string renter;
string rentday;

void print();
bool read(ifstream & file);

};

void dvd::print(){
cout <<"Title: " << name << endl;
cout <<"Genre: " << genre << endl;
cout << "Rating: " << rating << endl;
cout << "Release date: " << released << endl;
cout << "Name of renter: " << renter << endl;
cout << "Date rented: " << rentday << endl;
}
bool dvd::read(ifstream & file)
{
getline(file, name, ';');
getline(file, genre, ';');
getline(file, rating,';');
getline(file, released, ';');
getline(file, renter, ';');
getline(file, rentday, ';');
return file.good();
}
int main() {
vector<dvd> dvds;
dvd dvd1;
ifstream file("DVD.txt");

if(! file.is_open()){
cout << "Failed to find input file" << endl;
return 1;
}
while(dvd1.read(file))
{ dvds.push_back(dvd1);
}

dvd1.print();


return 0;

}

所以我想做的是将文本文件读入数组,然后从那里将数组读入结构。因此,我不需要将文本文件读入 vector ,而是需要它读入数组,然后从那里将数组的第一行 (dvdArray[1]) 读入 struct dvd,然后使用 print 函数打印出该信息,然后循环直到 dvdArray[10] 被读入 struct dvd!

非常感谢您的帮助! :)

最佳答案

改变

bool dvd::read(ifstream & file)

bool dvd::read(istream & file)

无需对其内容进行其他更改。

然后,取出每一行并将其放入std::istringstream,然后将其传递给dvd::read

您应该能够自己弄清楚其余部分。

关于c++ - 文件到数组再到结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37536253/

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