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*`,
No answers yet.
Inicia sesión para dejar una respuesta