如何在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*`。