我有以下代码:
void Category:: fillCategories(char** & categories, char** &subset, std::ifstream *input,
int*&subIndex)
{
while(!input->eof())
{
char buffer[30];
if (getCatSize()==getCatCapacty())
{
resize(categories, getCategoryCapAddress(), 5);
}
if (getSubSize()==getSubCap())
{
resize(subset, getSubsetCapAddress(), 5, subIndex);
}
std::getline(*input,buffer);
}
}
出于某种原因
std::getline(*input,buffer);
给我一个错误。我能做些什么来解决这个问题吗?
答案 0 :(得分:0)
您应该将getline
移至循环条件,并将while
替换为for
,如下所示:
for (std::string buffer; getline(*input, buffer); )
当然,请删除char[]
buffer
版本的buffer
。这样,您就可以使用动态调整大小的std::getline
{{1}},并使用正确的终止条件。