#include <stdio.h>
#include <stdlib.h>
FILE *arquivo;
int frag=0;
typedef struct
{
int cod;
char nome[30];
}codigo;
void abrir()
{
if(arquivo=fopen("teste.txt","rb")==NULL)
{
arquivo=fopen("teste.txt","ab");
codigo *a;
a->cod=0;
frag=1;
}
else
arquivo=fopen("teste.txt","ab");
}
void pega(codigo *p)
{
abrir();
gets(p->nome);
if(!frag)
{
fseek(arquivo,0,SEEK_END);
p->cod=p->cod+1;
fclose(arquivo);
}
p->cod=p->cod+1;
abrir();
fwrite(p,sizeof(codigo),1,arquivo);
fclose(arquivo);
}
void listar()
{
codigo *p;
abrir();
while(fread(p,sizeof(codigo),1,arquivo)==1)
{
printf("\n Codigo:%d",p->cod);
printf("\n Nome: %s",p->nome);
}
fclose(arquivo);
}
int main()
{
codigo *p,pt;
p=&pt;
printf("\nDigite o nome:");
pega(p);
listar();
return 0;
}