Avatar ·

如何在C++中将std::string转换为const char*或char*?

大家好!我刚开始学习C++,在处理字符串时遇到了问题。我有一个`std::string`类型的变量,需要将其传递给一个期望`const char*`或`char*`的函数。例如,我尝试使用`fopen()`函数打开文件,但它不接受`std::string`。这是我的代码: ```cpp #include #include #include int main() { std::string filename = "data.txt"; FILE* file = fopen(filename, "r"); // 编译错误! if (file) { std::cout << "File opened successfully" << std::endl; fclose(file); } return 0; } ``` 编译器报错:`cannot convert 'std::string' to 'const char*'`。我明白`std::string`和`const char*`是不同的类型,但如何转换它们?我尝试直接赋值`const char* str = filename;`——也不起作用。 还有一个问题:能否从`std::string`获取可变的`char*`?在一些旧API中,确实需要`char*`。