Ejemplo de Longitud Fija y Variable

Longitud Variable:

#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

typedef struct {int di,me,an;
}t_fecha;
typedef struct{ long dni;
char apn[36];
char sexo;
t_fecha fec;
float importe;
}t_info;
int ABRIRARCHIVO(FILE**fp, const char *nom,const char * modo)
{
*fp=fopen(nom,modo);
if(!fp)
{
printf("\n Error apertura archivo.");
return 0;
}
return 1;
}
int main(void)
{
FILE * fpent;
t_info reg;
if(ABRIRARCHIVO(&fpent,"datos.txt","wt")==0)
exit(1);
printf("\n Ingrese dni(0 finaliza):");
scanf("%ld",&reg.dni);
while(reg.dni!=0)
{ printf("\n Ingrese nombre y apellido:");
fflush(stdin);
gets(reg.apn);
printf("\n Ingrese sexo(M/F):");
scanf("%c",&reg.sexo);
printf("\n Ingrese fecha:");
printf("\n Dia:");
scanf("%d",&reg.fec.di);
printf("\n Mes:");
scanf("%d",&reg.fec.me);
printf("\n Anio:");
scanf("%d",&reg.fec.an);
printf("\n Ingrese importe:");
scanf("%f",& reg.importe);
fprintf(fpent,"%ld|%s|%c|%d/%d/%d|%f\n", reg.dni, reg.apn, reg.sexo, reg.fec.di, reg.fec.me, reg.fec.an, reg.importe);
printf("\n Ingrese dni(0 finaliza):");
scanf("%ld",&reg.dni);
}
fclose(fpent);

return 0;
}

Longitud Fija

#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define N 3

typedef struct
{
int dd;
int mm;
int aaaa;

} t_fecha;

typedef struct
{
char ape[20];
char nom[20];
int edad;
char sex;
t_fecha fnac;
float alt;

}t_pers;

int main()
{
FILE * pF;
t_pers aux;
int i;

pF = fopen("personas.txt", "w");

for( i=0 ; i < N; i++)
{
scanf("%s %s %d %c %d %d %d %f",aux.ape, aux.nom, &aux.edad, &aux.sex, &aux.fnac.dd, &aux.fnac.mm, &aux.fnac.aaaa, &aux.alt);

fprintf(pF,"%-15s %-15s %-6d %-2c %-3d %-3d %-5d %-5.2f\n",aux.ape, aux.nom, aux.edad, aux.sex, aux.fnac.dd, aux.fnac.mm, aux.fnac.aaaa, aux.alt);
}

fclose(pF);
return 0;

}