Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct
- {
- char nombre[20];
- int edad;
- }persona;
- int main()
- {
- FILE * archi = fopen("archivo.dat","rb");//abre para lectura
- //FILE * archi2 = fopen("archivo2.dat","rb");//abre para lectura
- persona per;
- fflush(stdin);
- scanf("%s",&per.nombre);
- fflush(stdin);
- scanf("%d",&per.edad);
- if (archi == NULL) //si es null no existe
- {
- printf("no existe! listo para grabar\n");
- archi = fopen("archivo.dat","wb");
- if (archi != NULL)
- {
- fwrite(&per,sizeof(persona),1,archi);
- per.edad = 1;
- fwrite(&per,sizeof(persona),1,archi);
- per.edad = 2;
- fwrite(&per,sizeof(persona),1,archi);
- per.edad = 3;
- fwrite(&per,sizeof(persona),1,archi);
- }
- }
- fclose(archi); //cerrar el buffer
- archi = fopen("archivo.dat","rb");
- if (archi != NULL)
- {
- while (fread(&per,sizeof(persona),1,archi)>0)
- {
- printf("%s\n",per.nombre);
- printf("%d\n",per.edad);
- }
- }
- /*
- fseek(archi,sizeof(persona) * 2-1, SEEK_SET);
- fread(&per,sizeof(persona),1,archi);
- printf("%s\n",per.nombre);
- printf("%d\n",per.edad);
- fseek((archi,sizeof(persona)*-1, SEEK_END);//leer la ultima
- */
- fseek(archi,0, SEEK_END);//me quedo en el borde final del archivo
- long tam = ftell(archi);
- printf("tam -> %ld\n",tam); //96
- int cantidad = tam / sizeof(persona);
- printf("cantidad -> %d\n",cantidad); //96
- fclose(archi); //cerrar el buffer
- // fclose(archi2); //uno por cada fopen
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment