如何为文件路径使用变量?

How does using a variable for file paths work?

本文关键字:变量 路径 文件      更新时间:2023-10-16
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&)'

fstreamopen的方法不接受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则编译应失败。