首页 > 解决方案 > 如何使用文本文件中的数据将对象添加到向量中

问题描述

我在文本文件中有一个游戏列表,如下所示:

MMO League Of Legends 
MMO World Of Warcraft 
Strategy Civilization 
Strategy Hearthstone 
Arcade Street Fighter 
Arcade PacMan 
AR Beat Saber 
AR Superhot 

我的问题是我想使用这些类别和名称创建对象,我想逐行阅读。

例如,我想阅读第一行,当它看到单词 MMO 时创建一个名为英雄联盟的 MMO 对象。与其他类别相同。我已经有了所有的类和构造函数。

然后,我需要将所有对象保存在以下向量中

vector <Game*> games;

到目前为止,这是我的主要功能

int main()
{

ifstream inFile;

inFile.open("Games.txt");   //Open the file

if (!inFile) {  //Check that file was opened successfully
    cout << "Unable to open file";
    exit(1);
}
string line;
if (inFile.is_open()) {

    while (std::getline(inFile, line)) {



    }

}

感谢您的帮助,我从早上开始就在这个程序上工作,这部分真的让我很难过!

标签: c++textfstream

解决方案


一种可能的解决方案是从一行一行地读入 a 开始std::string(就像你现在做的那样)。那么你真的有两个选择:

  1. 将该字符串放入 anstd::istringstream并提取第一个以空格分隔的单词(使用普通>>运算符),然后std::getline将该行的其余部分放入一个单独的字符串中。

  2. 找到第一个空格,并使用该substr函数将第一个单词和该行的其余部分放入单独的字符串中。

拥有两个单独的字符串后,您可以使用它们创建结构。


推荐阅读