如何为文件路径使用变量?
How does using a variable for file paths work?
ifstream inFile;
inFile.open("C:/FilePathThatWorks");
以上似乎适用于C++。但是,如果我尝试获取字符串,或CString或其他任何东西,并将其插入inFile.open(ExampleString)
,则它在编译时失败(此问题底部的错误(。问题不在于我的代码,而在于如何使C++接受inFile
变量。
如果它只接受 char* 变量,那么是否有一种方法可以以 char* 的形式从用户那里获取输入,其中包含空终止符和所有内容。
error: no matching function for call to 'std::basic_ifstream<char>::open(std::__cxx11::string&)'
fstream
中open
的方法不接受std::string
。您需要通过char*
.
所以只需打电话给c_str()
string
.
ifstream 需要一个 char* 参数作为文件名 http://www.cplusplus.com/reference/fstream/ifstream/ifstream/。
大多数字符串类都有某种方式转换为这种字符串(例如c_str(((
如果你想使用 CString:
CString path = "c:\FilePathThatWorks";
ifstream inFile;
inFile.open(static_cast<const char*>(path));
这里不需要演员阵容。
CString
可以表示两个不同的字符串,具体取决于项目设置。如果是char
字符串,则代码应编译,如果字符类型为wchar_t
则编译应失败。
相关文章:
- boost xml parsingl将xml的路径作为变量发送
- 从 C 中的变量获取文件的路径,C++
- 如何为文件路径使用变量?
- CMake 中的路径变量
- 在 Visual Studio 2010(及更高版本)中定义包含或链接路径变量的位置
- 局部变量 'sp' 在被读取之前在所有路径中重新分配
- 如何更改变量文件名的文件路径?
- 如何从文件中存在的路径中检索环境变量
- 如何将文件路径分配给C 中的变量
- QT;我如何在运行时存储通往变量的资源路径
- 使函数接受字符串变量内的路径
- 我正在尝试在Eclipse中构建一个C 项目,但是即使在使用MINGW路径设置路径变量之后,也会获得构建错误
- 从变量字符串中提升文件系统路径
- 当InProcServer32键定义DLL的完整路径时,path环境变量中为什么需要COM DLL的路径
- 无法使用 CMake 变量PROJECT_SOURCE_DIR定义静态库的绝对路径
- 我如何克服无声无法更改VC 2013中的路径环境变量
- 最短路径,带有两个变量
- 为什么ShellExecute不能使用包含文件路径的LPCSTR变量
- 代码块,添加了环境变量路径,但在安装文件夹之外出现 g++ 错误
- 错误的环境变量路径以Visual Studio 2013结尾