Hola a todos soy nuevo en el foro. Les paso a contar este es un código que estaba practicando pero quede trabado en el camino, si me pudieran ayudar a solucionar mi problema se los agradeceré.
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
Esta es la parte del código que yo quiero implementar para n personas. O sea hacerlo mas generalizado
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 (c) [Seleccionar]
+Nuha Ali+C Programming+23+javier T+Electronic+45+
Código (cpp) [Seleccionar]
#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 (cpp) [Seleccionar]
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);