Tema: Ficheros C++
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2013, 21:39
wanchankeita
 
Fecha de Ingreso: agosto-2013
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Busqueda Ficheros C++

bueno aqui con una duda tengo un proyecto donde tengo que leer de un archivo .txt cierta informacion de la siguiente manera:

1|Nombre|Apellido|Pais|Telefono|E-mail|Edad|Sexo|Fecha Nacimiento
2|Nombre|Apellido|Pais|Telefono|E-mail|Edad|Sexo|Fecha Nacimiento
.
.
.
.
Y asi sucesivamente, pero mi problema es que solo me lee el nombre y lo almacena en la variable codigo y luego se queda trabado en uno de los dos ciclos while.

Nota: Esta informacion debo de leerla del fichero .txt y cargarla a una estructura.

Agradeceria mucho si alguien me pudiera brindar una ayuda, adjunto el codigo que llevo de momento.

#include _stdio.h_
#include _string.h_
#include _conio.h_

int main()
{

FILE *contenido;
char *pathArchivo;
char linea [250];

char *codigo;
char *nombre;
char *apellido;
char *direccion;
char *correo;
char *edad;
char *telefono;
char *token;
int opcion=1;
int contador=1;

pathArchivo="Clientes.txt";
contenido=fopen(pathArchivo, "r");

if(!pathArchivo)
printf("ARCHIVO NO EXISTE, VERIFIQUE LA RUTA DE ACCESO PARA %s", pathArchivo);

else
{
printf("ARCHIVO ENCONTRADO SATISFACTORIAMENTEnn");

while(!feof(contenido))
{
fgets(linea, 250, contenido);
token=strtok(linea, "|");
strcpy(linea, token);

while((token=strtok(NULL, "|"))!=NULL)
{
switch(opcion)
{
case 1:
{
strcpy(codigo, token);
printf("Codigo: %s", codigo);
opcion++;
break;
}

case 2:
{
strcpy(nombre, token);
printf("Nombre: %s", nombre);
opcion++;
break;
}

case 3:
{
strcpy(apellido, token);
printf("Apellido: %s", apellido);
opcion++;
break;
}

case 4:
{
strcpy(direccion, token);
printf("Direccion: %s", direccion);
opcion++;
break;
}

case 5:
{
strcpy(correo, token);
printf("Correo: %s", correo);
opcion++;
break;
}

case 6:
{
strcpy(edad, token);
printf("Edad: %s", edad);
opcion++;
break;
}

case 7:
{
strcpy(telefono, token);
printf("Telefono: %s", telefono);
opcion=1;
break;
}
}
}
contador++;
}
}

getch();
}