Ejemplo de Longitud Fija y Variable

Longitud Variable:

include <conio.h> 
include <stdlib.h>
include <stdio.h>
include <string.h>
define CON_MSG 1
define SIN_MSG 0
 typedef struct {int di,me,an;
                     }t_fecha;
 typedef struct{ long dni;
                      char apn[36];
                 char sexo;
                 t_fecha fec;
                 double importe;
               }t_info;
 int ABRIRARCHIVO(FILE*fp,const charnom,const charmodo,int csm) {fp=fopen(nom,modo);
  if(!*fp)
    {if(csm==CON_MSG)
       {printf("\n Error");
        getch();
       }
     return 0;
    }
  return 1;
 }
 void main(void)
 {
  FILEfpent;  char linea[500];  charaux;
  t_info reg;
  if(!ABRIRARCHIVO(&fpent,"datos.txt","wt",CON_MSG))
    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("%ld",& reg.importe);
          fprintf(fpent,"%ld|%s|%c|%d/%d/%d|%ld\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);
 }

Longitud Fija

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

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;

void 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);

}