首页 > 解决方案 > 使用 .txt 文件将数据集输入到 C++ 中的向量(可能不止一个数据集)中

问题描述

我正在为一起使用 JNI 和 C++ 的学校开发这个项目。给了我 java 代码,它让用户为有关动物园动物的数据集输入 6 个不同的输入。最后它会询问您是否要添加另一个。

如果是,输入将在第二行,一旦选择 N,它将写入 .txt 文件,格式为:

001235 阿丽塔哺乳狼 0 0

001234 鲍勃哺乳动物狼 0 0

(请注意两个数据之间没有空行)

下面的代码是我编写的用于打开文件并将输入转换为向量的代码,该向量可成功用于一行用户输入。我遇到了一个问题,即如何为用户可以输入的潜在未知数量的向量逻辑地进行这项工作。

void LoadDataFromFile()
{
     /*
            TODO: Write proper code to load data from input file (generated using JNI) into vector/array.
     */

    
    vector<string> zooVector(6);
    int count = 0;
    unsigned int i;

    ifstream inputFile;
    inputFile.open("zoodata.txt");

    if (!inputFile) {
        cerr << "Unable to open file zoodata.txt";
        exit(1);   // call system to stop
    }


    while(count < 6)  {
        for(i = 0; i < 6; ++i) {
            inputFile >> zooVector.at(i);
            count += 1;
        }
    }

最终目标是将其写入内存以进行多类继承,但我试图让输入为向量工作。

标签: c++vectorfstream

解决方案


对于 ; 的不同字段,您不需要字符串向量animal。你需要一个struct.

那么你需要一个向量struct来代表一个动物园;当您从文件中读取更多行时,它会动态增长。


推荐阅读