Código
#include <stdio.h> #include <stdlib.h> struct sis{ int cod; char titu[25]; char aut[25]; char edit[25]; int ano; char gene[25]; }; int agregar(); int ver(); char * prog="DATA.file"; FILE * pf = NULL; struct sis base[3000]={0}; int main(int argc, char *argv[]){ int x; if (pf==NULL){ return 0; } } switch (x){ case 1:{ agregar(); break; } case 2:{ ver(); break; } } return 0; } int agregar(){ int z=0,y=0; if (base[z].cod==0){ y=z; } else { z++; } base[y].cod=y+1; return 0; } int ver(){ int i=0; int z=0,y=0; if (base[z].cod==0){ y=z; } else { z++; } for (i=0; i<=y; i++){ printf("%d \t %s \t %s \t %s \t %d \t %s\n",base[i].cod,base[i].titu,base[i].aut,base[i].edit,base[i].ano,base[i].gene ); } return 0; }
El gran problema, es qe me sobreescribe la informacion que ya esta en el archivo, osea... lo que necesito es...
que lea los datos del archivo y los meta en el struct BASE. Despues, cuando se desea hacer algo, que el programa vea cual es el ultimo registro, y agregue algo despues de ese. Finalmente que lo guarde en el archivo sobreescribiendo lo anterior.
Lo que sucede es que abre el archivo, lo lee, pero cuando escribe, me escribe arriba de lo que ya estaba antes :s