使用字符串作为打开文件路径的C++ifstream错误
C++ ifstream error using string as opening file path.
我有:
string filename:
ifstream file(filename);
编译器抱怨ifstream文件和字符串之间没有匹配。我需要把文件名转换成什么吗?
错误如下:
error: no matching function for call to ‘std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(std::string&)’
/usr/include/c++/4.4/fstream:454: note: candidates are: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
更改
ifstream file(filename);
至
ifstream file(filename.c_str());
因为ifstream
的构造函数采用const char*
,而不是C++11之前的string
。
ifstream
构造函数需要一个const char*
,因此需要执行ifstream file(filename.c_str());
才能使其工作。
在c++-11中,它也可以是std::字符串。因此(安装c++-11并)将项目的方言更改为c++-11也可以解决这个问题。
相关文章:
- 如何将更多文件夹添加到c++include路径
- 从函数角度看ID到文件路径的内部与外部映射
- 在C++中设置基于操作系统的文件路径
- C++17 文件系统::remove_all 带有通配符路径
- 从 C 中的变量获取文件的路径,C++
- 将共享库的搜索路径更改为生成文件中提供的 rpath
- 修改生成文件以简化框架 #include 路径
- 将Visual Studio Code路径设置为.clang_format文件
- Windows 非 ASCII 文件路径
- 非 ASCII 文件路径窗口
- C++和带有国家符号的文件路径(也许用 UTF8 编码)
- 获取 H5::D ataSet 的hid_t和文件中的路径以使用 H5OCopy
- 在特定 Unicode 路径中创建文件
- 如何让用户在 tinyxml2 中输入 XML 文件的路径
- 如何将COM .tlb文件导入具有相对路径C++文件中?
- C++ 路径文件存在限制为 260 个字符
- QT-在pro中指定DLL路径.文件
- 路径文件存在导致链接器错误 2028/2019
- 选择QTableWidgetItem qt的路径文件
- 如何有一个正确的路径文件读取它到stringstream