将输入文本文件中比单个单词长的字符串存储到两个单独的数组中

时间:2018-11-06 13:18:58

标签: c++

这是一个重复的问题,因为我认为我有足够的答案可以找到需要的地方。原来我没有。我有一个.txt文件,其格式如下:

User enters postcode in text box
Upon submit user is redirected to mysite.com/[user postcode]

我需要获取此文本文件,并将其分成两个单独的数组,一个用于响应,另一个用于类别。到目前为止,我已经可以使用getline将.txt文件分成两个字符串,但是我似乎无法将其放入数组。

It is certain
positive
You may rely on it
positive
.
.
.
Very Doubtful
negative

我对上面的代码进行了几次不同的迭代和更改,但这是最新的代码。在此先感谢您的帮助或指导。此编程新手对此深表感谢。

1 个答案:

答案 0 :(得分:2)

如果您知道这两个数组的大小(response.txt中的行数),请尝试

for(int i=0; i<size_array; i++){
    getline(infile, responses[i]);
    getline(infile, categories[i]);
}

getline(infile, line1)将把response.txt中的当前行添加到line1中,而无需在while()代码中再次获取line()。

如果您不知道response.txt中有多少行,请考虑使用std::vector而不是普通数组。

std::vector<std::string> responses, categories;
while(getline(infile, line1) && getline(infile, line2)){
    responses.push_back(line1);
    categories.push_back(line2);
}