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

Cargar un archivo depositándolo en una lista enlazada

Estas en el tema de Cargar un archivo depositándolo en una lista enlazada en el foro de C/C++ en Foros del Web. Hola, tengo un programa que guarda en un archivo nombres y numeros de telefono que estaban en una lista enlazada. ejemplo: agenda.txt Código: Alvaro Garcia ...
  #1 (permalink)  
Antiguo 13/12/2008, 04:45
 
Fecha de Ingreso: junio-2008
Mensajes: 32
Antigüedad: 16 años, 5 meses
Puntos: 0
Cargar un archivo depositándolo en una lista enlazada

Hola, tengo un programa que guarda en un archivo nombres y numeros de telefono que estaban en una lista enlazada.

ejemplo: agenda.txt
Código:
Alvaro Garcia 928371283
Javier Garcia 8123982137
A la hora de meter estos datos en el archivo, "Alvaro Garcia" era una variable char y el número de teléfono otro char.

Lo que me gustaría es implementar una función para cargar el archivo, extraer los datos y depositarlos en una lista enlazada. He probado con un fscanf pero no encuentro la forma. A ver si me podeis echar una mano

Gracias por adelantado!
  #2 (permalink)  
Antiguo 16/12/2008, 20:13
Avatar de gzaloprgm  
Fecha de Ingreso: abril-2005
Ubicación: En mi casa
Mensajes: 67
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Cargar un archivo depositándolo en una lista enlazada

Proba con algo parecido a esto:
Código:
bool isnum(char j){
    return j>='0' && j<='9';
}

struct datos{
   string nombre;
   string telefono;
};

vector <datos> dat;

...

ifstream in("file.txt");
string temp;
datos dtemp;
while(in.getline(temp)){
   for(int i=0;i<temp.size();i++){
       if(is_num(temp[n]){
           dtemp.nombre = temp.substr(0,i);
           dtemp.telefono = temp.substr(i+1);
           dat.push_back(dtemp);
           break;
       }
   }
}
Fijate, lo escribi en c++ pero facilmente lo podrás pasar a c
__________________
Visita http://gzalo.com: mi web con circuitos electrónicos, esquemáticos, circuitos impresos, análisis, calculadoras, y muchas otras cosas.
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 13:45.