Lo que hace es abrir un archivo txt que tiene previamente cargado datos de nombre,profesión y edad para distinguir a cada uno uso un + para separarlas en el archivo.
La idea era llevarlo a esto para n personas cargadas. ya intente haciendo un for pero la verdad no lo he podido resolver. Saludos.
Este es el archivo txt
Código
+Nuha Ali+C Programming+23+javier T+Electronic+45+
Código
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> void lectura (char Archivo[]); typedef struct{ char nombre[200],p_profesion[200],p_edad[200]; }sujeto; main() { sujeto lista; int i=0, j=0,k=0,n=1,c=0; char Archivo [200],*pArchivo; int l, p[10], *pp; pp = p; pArchivo = Archivo; lectura(Archivo); for (i=0; i<300; i++) lista.nombre[i] = lista.p_profesion[i] = lista.p_edad[i] = 0; printf ("Cadena provista por el Archivo:\n"); printf ("\n%s\n\n",pArchivo); l = strlen(pArchivo); for (i=0; i<l; i++){ if (*(pArchivo++) == '+' ){ pp [j]= i; j++; } } printf ("DATOS:\n\n"); strncpy(lista.nombre, Archivo+pp[0]+1,pp[1]-1); strncpy (lista.p_profesion, Archivo+pp[1]+1,pp[2]-pp[1]-1); strncpy (lista.p_edad, Archivo+pp[2]+1,pp[3]-pp[2]-1); printf ("Nombre: %s\n",lista.nombre); printf ("Profesion: %s\n",lista.p_profesion); printf ("Edad: %s\n",lista.p_edad); strncpy(lista.nombre, Archivo+pp[3]+1,pp[4]-pp[3]-1); strncpy (lista.p_profesion, Archivo+pp[4]+1,pp[5]-pp[4]-1); strncpy (lista.p_edad, Archivo+pp[5]+1,pp[6]-pp[5]-1); printf ("Nombre: %s\n",lista.nombre); printf ("Profesion: %s\n",lista.p_profesion); printf ("Edad: %s\n",lista.p_edad); getch(); } void lectura (char Archivo[]) { FILE *fichero; fichero=fopen("3.txt","r"); if (fichero == NULL){ printf("\nError de apertura del archivo. \n"); } else{ while (feof(fichero)==0) { fgets(Archivo,200,fichero); } fclose(fichero); } }
Esta es la parte del código que yo quiero implementar para n personas. O sea hacerlo mas generalizado
Código
strncpy(lista.nombre, Archivo+pp[0]+1,pp[1]-1); strncpy (lista.p_profesion, Archivo+pp[1]+1,pp[2]-pp[1]-1); strncpy (lista.p_edad, Archivo+pp[2]+1,pp[3]-pp[2]-1); printf ("Nombre: %s\n",lista.nombre); printf ("Profesion: %s\n",lista.p_profesion); printf ("Edad: %s\n",lista.p_edad); strncpy(lista.nombre, Archivo+pp[3]+1,pp[4]-pp[3]-1); strncpy (lista.p_profesion, Archivo+pp[4]+1,pp[5]-pp[4]-1); strncpy (lista.p_edad, Archivo+pp[5]+1,pp[6]-pp[5]-1); printf ("Nombre: %s\n",lista.nombre); printf ("Profesion: %s\n",lista.p_profesion); printf ("Edad: %s\n",lista.p_edad);