在C ++中使用.txt文件将数据集输入向量可能不止一个数据集

问题描述

我正在为这个同时使用JNI和C ++的学校进行这个项目。 Java代码是给我的,它使用户可以为有关动物园动物的数据集输入6个不同的输入。最后,它会询问您是否要添加Y或N。

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

001235 Alita哺乳动物狼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;
        }
    }

最终的目标是将其写入内存以进行多类继承,但是我试图使输入对向量起作用。

解决方法

animal的不同字段不需要字符串向量;您需要一个struct

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