c++ fstream是接受一个常量字符数组作为参数还是一个动态参数?

6yt4nkrj  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(84)

我试图发送一个fstream对象到一个函数,我提供了文件名作为字符串。现在我想将字符串类型转换为字符数组,因为fstream采用字符数组。然而,我想知道是否将其设置为静态或常量。此外,如果我想将其设置为静态,我应该使用static_cast<const char*>还是只使用str.c_str()
我在互联网上搜索,但没有找到我需要的答案。

k7fdbhmy

k7fdbhmy1#

我想把字符串类型转换成字符数组,因为fstream接受字符数组。
你假设fstream只接受一个字符数组是错误的。从C++11开始,它也有一个接受std::string的ctor。所以你不需要使用c_str或任何类型转换,因为你可以直接使用std::string
std::fstream

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?

相关问题