繁体   English   中英

在 C++ 中从文件中读取数据有困难

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM