将文本文件的交替行分成两个不同但对应的数组C ++

时间:2018-11-06 01:41:45

标签: c++

好吧,所以我一直试图弄清楚这几个小时,但实际上却一无所获。我发现类似问题的答案对我来说都没有任何意义。我想是因为我们还没有深入到课程中。

我需要输入一个文本文件,其格式为响应和类别,

Yes
positive
Maybe
vague
No
negative

并将其放入两个不同的数组(respons [],category [])。我必须使用一个函数来执行此操作。我的教练给了我们函数声明,但没有给我们定义,因此我们有了

void readResponses(ifstream &infile, string responses[], string categories[], int &size)

我可以打开一个文件并将其放入数组中没问题。我知道如何使用数组并打印出来,等等。我只是不知道如何将两者分开。有没有一种使用getline并将其他所有行放入数组的方法?很抱歉,如果这是一个重复性的问题,但在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为,根据您通常的阅读方式,您可能会陷入一种特殊的思维方式。读取文本文件的常用方法是一次循环一行,如下所示:

void foo(std::istream& inStream)
{
    std::string line;
    while (std::getline(inStream, line))
    {
        // Do stuff with line
    }
}

现在,如果您希望每个输入都是两行文本,则一次只能读两行:

void foo(std::istream& inStream)
{
    std::string response, category;
    while (std::getline(inStream, response) && std::getline(inStream, category))
    {
        // Do stuff with response and category
    }
}