我试图发送一个fstream对象到一个函数,我提供了文件名作为字符串。现在我想将字符串类型转换为字符数组,因为fstream采用字符数组。然而,我想知道是否将其设置为静态或常量。此外,如果我想将其设置为静态,我应该使用static_cast<const char*>还是只使用str.c_str()?我在互联网上搜索,但没有找到我需要的答案。
fstream
static_cast<const char*>
str.c_str()
k7fdbhmy1#
我想把字符串类型转换成字符数组,因为fstream接受字符数组。你假设fstream只接受一个字符数组是错误的。从C++11开始,它也有一个接受std::string的ctor。所以你不需要使用c_str或任何类型转换,因为你可以直接使用std::string。从std::fstream:
std::string
c_str
explicit basic_fstream( const std::string& filename, std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out );
字符串Why don't the std::fstream classes take a std::string?的
1条答案
按热度按时间k7fdbhmy1#
我想把字符串类型转换成字符数组,因为fstream接受字符数组。
你假设
fstream
只接受一个字符数组是错误的。从C++11开始,它也有一个接受std::string
的ctor。所以你不需要使用c_str
或任何类型转换,因为你可以直接使用std::string
。从std::fstream:
字符串
Why don't the std::fstream classes take a std::string?的