gpt4 book ai didi

c++ - getline() 与 ifstream 指针错误?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:51:14 26 4
gpt4 key购买 nike

我有以下代码:

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); 

给我一个错误。我能做些什么来解决这个问题吗?

最佳答案

您应该将 getline 移到循环条件中,并将 while 替换为 for,如下所示:

for (std::string buffer; getline(*input, buffer); )

当然,删除 bufferchar[] 版本。这样,您就有了一个动态大小的 buffer,可与 std::getline 配合使用并使用正确的终止条件。

关于c++ - getline() 与 ifstream 指针错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28422698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com