[英]Having Difficulty Reading Data From a File in C++
我在这个学校项目上遇到了一些问题,可以在开始时使用一些帮助。 我得到一个文件,其中包含电影名称、制作年份和类型,然后我应该创建一个包含信息的链接列表。 文件中的每一行看起来像这样:
1::Toy Story (1995)::Animation|Children's|Comedy
如果用户决定按电影名称搜索并输入Toy Story
,它应该显示电影的名称和年份: Toy Story (1995)
如果用户决定按流派搜索,它应该显示包含该流派的每部电影。 最后,如果用户想删除一部电影,他们输入电影标题,它应该与其他信息一起从链接列表中删除。
所以到目前为止我遇到的问题是读取数据。 当我读入数据时,我可以删除::
和|
并将所有内容存储在一个向量中,但现在向量的每个元素都是一个词,这意味着如果我要打印出vect[1]
例如,它将是Toy
(因为vect[0]
将是1
因为我不知道如何删除前导数字,这是另一个问题)。
那么我将如何将电影的标题保留在一起,以便我可以将其添加到链接列表中,反之亦然? 另外,我是否需要创建三个链接列表,一个是电影名称,一个是年份,另一个是类型?
我没有太多代码,因为我的问题刚开始是对的,但这是我到目前为止所拥有的。 它遍历文件并删除::
和|
并将其存储到一个向量中。 我不知道我应该如何从这里开始,或者即使这是解决此类问题的正确方法。
while(inFile >> value)
{
istringstream iss(value);
string line;
while(getline(iss, line))
{
size_t prev = 0, pos;
while ((pos = line.find_first_of("|:", prev)) != string::npos)
{
if (pos > prev)
{
vect.push_back(line.substr(prev, pos-prev));
}
prev = pos + 1;
}
if (prev < line.length())
{
vect.push_back(line.substr(prev, string::npos));
}
}
}
我不是通常寻求帮助的人,但我完全陷入困境,不知道如何继续。 任何帮助,将不胜感激! 如果我需要澄清任何事情,请告诉我。
不要把它当作一个字符串。 编写一个数据结构来包含信息。
struct movie {
std::string title;
std::string year;
std::vector<std::string> genres;
};
然后,在解析每一行时,填充此结构的一个实例。 解析完该行后,将结构推送到您的列表中。 这将使您能够在以后进行搜索。 您还可以将流运算符添加到结构中,以便以干净的格式将其打印到屏幕上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.