好吧,所以我一直试图弄清楚这几个小时,但实际上却一无所获。我发现类似问题的答案对我来说都没有任何意义。我想是因为我们还没有深入到课程中。
我需要输入一个文本文件,其格式为响应和类别,
Yes
positive
Maybe
vague
No
negative
并将其放入两个不同的数组(respons [],category [])。我必须使用一个函数来执行此操作。我的教练给了我们函数声明,但没有给我们定义,因此我们有了
void readResponses(ifstream &infile, string responses[], string categories[], int &size)
我可以打开一个文件并将其放入数组中没问题。我知道如何使用数组并打印出来,等等。我只是不知道如何将两者分开。有没有一种使用getline并将其他所有行放入数组的方法?很抱歉,如果这是一个重复性的问题,但在此先感谢您的帮助。
答案 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
}
}