带有ifstream指针错误的getline()
getline() with ifstream pointer error?
我有以下代码:
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); )
当然,还要删除buffer
的char[]
版本。这样,您就有了一个动态大小的buffer
,它可以与std::getline
一起使用,并使用正确的终止条件。
相关文章:
- 错误 没有与参数列表匹配的重载函数"getline"实例
- 错误:调用'getline'没有匹配函数
- 使用 getline(cin, var) 两次在进行字符串比较时会产生错误 (==)
- 使用getline和字符串函数C++程序中的分段错误
- 将 int 与字符串和 getline 一起使用,没有错误
- C++ 获取线错误。如何避免此错误?"没有重载函数"getline"的实例
- 从带有 getline() 的文件读入一行上有多个信息得到无效参数错误
- 错误:函数"getLine"必须具有原型
- C++ 读取文件和写入变量时未处理的异常 - getline 错误?
- 由于 getline(cin,s) 导致的 SIGABRT 错误
- 在 main() 中使用 getline() 函数时出现命名空间错误
- 使用 getline 函数获取分段错误
- 使用 getline() 时编译错误: 'mismatched types'
- 错误:<char>使用 getline 时basic_istream为非标量类型 cxx11::string
- progam在std :: getline AM之后停止响应,代码中是否存在错误
- 为什么我会收到错误:没有重载函数的实例"getline"与此处的参数列表匹配?
- 使用 getline、strcpy、strtok c++ 加载.txt文件时出现运行时错误
- 尝试执行时出现 cin.getline 错误
- getline()错误.没有重载函数的实例与参数列表匹配
- C++ getline() 错误,没有与参数列表匹配的重载函数"getline"实例