在 dev cpp 中找不到 ifstream 的打开函数
提供的代码尝试使用 file.open(name) 打开文件,其中名称是一个字符串。但是,此代码在 Visual Studio (VS) 中编译成功,但在 dev cpp 中编译失败。错误消息表明带有字符串参数的 open 方法没有匹配的函数。
此问题的根本原因是在 open 函数中使用字符串参数的支持只是在 C 11 中引入的虽然 VS 支持 C 11,但 dev cpp 似乎使用旧版本的 C 标准,其中不包括此内容。
解决方案:
要解决此问题,有两种方法:
使用 c_str( ): 使用 c_str() 方法将字符串参数转换为字符数组,并将该数组传递给 open函数:
file.open(name.c_str());
使用构造函数: 或者,您可以使用带有字符串参数的 ifstream 构造函数:
std::ifstream file(name.c_str());
此外,为了避免不必要的复制,建议将字符串参数传递给通过常量引用 loadNumbersFromFile():
std::vector<int> loadNumbersFromFile(std::string const& name)
以上是为什么我的 `ifstream.open()` 不能在 Dev-C 中使用字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!