Hola vosk gracias por tu pronta repuesta llena de observaciones constructivas, estuve varios dias sin conectarme y he seguido al pie de la letra tus indicaciones y respondo tus preguntas el formato en que tengo el archivo .Dat es puro texto con un salto de linea luego de cada campo es eso lo que preguntabas ?
Una duda vosk, en varios campos uso el %d como en edad y codigo pero igual al hacer fprint me lo lee como cadena de texto, como dices lo del retorno del fscanf, es decir como se cuando me leera entero es decir cuando me devolvera el fscanf 2, no se si me explique, por otro lado si colocara como condicion en el if de la linea 2,
el numero 2 como condicion para leer la cadena de texto debo tener dos argumentos ejem: %d %f.
Luego me preguntas que trabaje con estructuras y correctamente, guardo la estructura directamente al archivo de esta forma:
Código C:
Ver originalprintf("Cuantos atletas desea agregar \n");
for (i=0;i<c;i++)
{
scanf("%s",&dat
[i
].
nombre); scanf("%s",&dat
[i
].
apellido); scanf("%d",&dat
[i
].
edad); scanf("%s",&dat
[i
].
deporte); scanf("%d",&dat
[i
].
codigo); fprintf(archivo
,"%s\n%s\n%d\n%s\n%d\n\n",dat
[i
].
nombre,dat
[i
].
apellido,dat
[i
].
edad,dat
[i
].
deporte,dat
[i
].
codigo); }
}
Gracias por tu ayuda y asi me ha quedado el codigo luego de seguir tus instrucciones:
Código C:
Ver originalvoid leer(void)
{
FILE *archivo;
char temp[80];
int a;
int x,y,con,b;
x=1;
y=2;
b=2;
con=0;
archivo
=fopen("Lista.dat","r"); if (archivo==NULL)
{
}
else
{
}
while(1)
{
if (fscanf(archivo
,"%s",temp
)==1) {
con++;
gotoxy
(x
,y
);printf("%s ",temp
); x+=16 ;
if(con==5)
{
con=0;
x+=1;
y+=b;
}
}
else
{
{
printf("\n\n\nFINAL DEL ARCHIVO"); }
{
}
else
{
}
break;
}
}
}
y otra pregunta hay que aprovechar, xD xq rayos se imprimia un campo de mas ? al colocar el codigo de la primera manera?