Foros del Web » Programación para mayores de 30 ;) » Programación General »

pasar variables a la función open de C++

Estas en el tema de pasar variables a la función open de C++ en el foro de Programación General en Foros del Web. Hola a todos Soy yo de nuevo con mis problemillas en C++. resulta que necesito crear una función para leer un fichero, esta función tendrá ...
  #1 (permalink)  
Antiguo 19/03/2005, 20:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 20 años, 5 meses
Puntos: 1
pasar variables a la función open de C++

Hola a todos

Soy yo de nuevo con mis problemillas en C++.

resulta que necesito crear una función para leer un fichero, esta función tendrá como parámetro de entrada una variable tipo string fichero, que será el nombre del fichero que quiero abrir.

pues lo que hizé era, dentro de esta función, crear un fichero lógico f como siempre, y usar la función open así: f.open (fichero).

pero veo que esta forma no me sirve, y da error, según he comprobado, la función open solo acepta como entrada una constante.

el código de la función es el siguiente
Cita:
bool LeerFichero (string fichero)
{
int i; //contador auxiliar para recorrer un vector
string linea; //linea leída del fichero
ifstream f;
f.open(fichero);
if (!f)
return false;
else
//pasar los datos del fichero al vector
while (!f.eof())
{
getline (f, linea, '\n');
v[i]; //vector declarado anteriormente para almacecnar datos
i++;
}//while
f.close();
return true;
}//LeerBibioteca

He tratado de buscar alguna función alternativa o alguna solución para este caso, pero la verdad es que no encontré nada.

Agradecería vuestra ayuda.

SALUDOS Y PAZ
  #2 (permalink)  
Antiguo 20/03/2005, 02:35
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Tanto la función open como el constructor de ifstream pueden tomar una cadena (un array de chars) y no una string. La clase string puede devolver una cadena usando la funcion c_str con lo cual esa linea quedaría así:

f.open(fichero.c_str());
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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 05:12.