Avatar ·

Cómo convertir std::string a const char* o char* en C++?

¡Hola a todos! Acabo de empezar a aprender C++ y me encontré con un problema al trabajar con strings. Tengo una variable de tipo `std::string` y necesito pasarla a una función que espera `const char*` o `char*`. Por ejemplo, intento abrir un archivo con la función `fopen()`, pero no acepta `std::string`. Aquí está mi código: ```cpp #include #include #include int main() { std::string filename = "data.txt"; FILE* file = fopen(filename, "r"); // ¡Error de compilación! if (file) { std::cout << "File opened successfully" << std::endl; fclose(file); } return 0; } ``` El compilador da el error: `cannot convert 'std::string' to 'const char*'`. Entiendo que `std::string` y `const char*` son tipos diferentes, pero ¿cómo convertirlos? Probé simplemente asignar `const char* str = filename;` — tampoco funciona. Otra pregunta: ¿se puede obtener un `char*` mutable desde `std::string`? En algunas APIs antiguas requieren exactamente `char*`,