Lo he cambiado. El programa funciona correctamente pero en este tramo, al capturar el salario, la primera cifra del mismo desaparece. Supongo que se debe al z=getc(fp) del principio, al no ser el salario un vector pero no sé cómo arreglarlo. Gracias por contestar!
Código C:
Ver originalFILE *fp;
fp
= fopen("trab.db","r+t");
if(fp==NULL)
{
printf("Erro na apertura do arquivo.\n"); }
n=0;
while(feof(fp
)==0 && n
<LNX
) {
if(z!=',')
{
if(m==0)
{
tb[n].nif[r]=z;
r++;
}
else if(m==1)
{
tb[n].nome[r]=z;
r++;
}
else if(m==2)
{
fscanf(fp
,"%f",&tb
[n
].
salario); z=',';
}
}
if(z==',')
{
if(m==0) tb[n].nif[r]='\0';
else if(m==1) tb[n].nome[r]='\0';
else if(m==2) {n++; m=-1;}
m++;
r=0;
}
}