Foros del Web » Programación para mayores de 30 ;) » C/C++ »

¿Para que usa esta función c_str()?

Estas en el tema de ¿Para que usa esta función c_str()? en el foro de C/C++ en Foros del Web. string abrir(bool& ok){ ifstream fIn; string fich = ""; cout << "Fichero a abrir: "; cin >> fich; fIn.open(fich.c_str()); if (fIn.is_open()){ cout << "Fichero abierto ...
  #1 (permalink)  
Antiguo 20/01/2013, 04:20
 
Fecha de Ingreso: octubre-2012
Mensajes: 14
Antigüedad: 12 años
Puntos: 0
¿Para que usa esta función c_str()?

string abrir(bool& ok){
ifstream fIn;
string fich = "";
cout << "Fichero a abrir: ";
cin >> fich;
fIn.open(fich.c_str());
if (fIn.is_open()){
cout << "Fichero abierto correctamente";
ok = true;
} else{
ok = false;
cout << "Error al abrir el fichero";
}
fIn.close();
return fich;
}

no entiendo porque usa c_str() porque no deja el string solo es decir fin.open(fich) porque con eso no vale y pone esa función?
  #2 (permalink)  
Antiguo 20/01/2013, 05:24
Avatar de ZeKi  
Fecha de Ingreso: noviembre-2012
Ubicación: Jaén
Mensajes: 61
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Para que usa esta función c_str()?

La función open de los ficheros necesita que la ruta del fichero que le pases sea const char*, por lo que la función c_str() extrae del string la ruta pero con formato const char*. Dicho de otra forma, extrae un puntero a un array que contiene todos los caracteres no nulos que haya en el string.
  #3 (permalink)  
Antiguo 20/01/2013, 12:36
 
Fecha de Ingreso: octubre-2012
Mensajes: 14
Antigüedad: 12 años
Puntos: 0
Respuesta: ¿Para que usa esta función c_str()?

Graciasss

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:25.