Quiero escanear un fichero en una estructura, el cual se compone de un elemento por línea (nif,nombre,salario), cuyo patrón se repite durante el archivo.
El nif y el nombre son variables tipo char. Antes tenía el salario como char también y sólo me valía de la función gets, funcionaba todo perfecto. El problema surge cuando tomo la variable char como un entero o un float y uso la función fscanf. Todo se va al traste y el escaneo es erróneo, en campos que no corresponden de la estructura.
El fragmento de código que creo que me da problemas es el siguiente:
Muchas gracias de antemano.
Código:
while(feof(fp)==0 && n<LNX){
fgets(tb[n].nif,LNX,fp);
fgets(tb[n].nome,LNX,fp);
fscanf(fp,"%d",&tb[n].salario);
tb[n].nif[strlen(tb[n].nif)-2]='\0';
tb[n].nome[strlen(tb[n].nome)-2]='\0';
printf("%s\n",tb[n].nome);
n++;
}
Resuelto con un
fgetc():
Código:
while(feof(fp)==0 && n<LNX){
fgets(tb[n].nif,LNX,fp);
fgets(tb[n].nome,LNX,fp);
fscanf(fp,"%d",&tb[n].salario);
fgetc(fp);
tb[n].nif[strlen(tb[n].nif)-2]='\0';
tb[n].nome[strlen(tb[n].nome)-2]='\0';
printf("%s\n",tb[n].nome);
n++;
}