File: Stare vježbe/vjezbe12/76__binarna_datoteka.c
/* 76__binarna_datoteka.c Uvodimo binarne datoteke i funkcije fread i fwrite. */ #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define FALSE 0 #define TRUE !FALSE struct dionica_dat { char ime[30]; float cijena; }; void write_info(void); void read_info(void); int main() { char c; int done=FALSE; while(!done) { fflush (stdin); puts("\nTrziste dionica"); puts("D - Dodavanje nove dionice"); puts("L - Listanje dionica"); puts("I - Izlaz"); while ((c=getchar())==' ' || c=='\t' || c=='\n'); c = toupper(c); switch(c) { case('D'): puts("\nDodavanje nove dionice"); write_info(); break; case('L'): puts("\nListanje dionica"); read_info(); break; case('I'): puts("Izlaz"); done = TRUE; break; default: puts("?"); break; } } } void write_info(void) { FILE *dionice; struct dionica_dat dionica; scanf("%s", dionica.ime); printf("Koliko ste platili za nju: "); scanf("%f", &dionica.cijena); dionice = fopen("dionice.dat", "ab"); if(dionice==NULL) { printf("Greska prilikom otvaranja datoteke!\n"); return; } fwrite(&dionica, sizeof(dionica), 1, dionice); fclose(dionice); } void read_info(void) { FILE *dionice; struct dionica_dat dionica; int foo; dionice = fopen("dionice.dat", "rb"); if(dionice==NULL) { printf("Greska prilikom otvaranja datoteke ili je ona prazna!\n"); return; } while(TRUE) { foo = fread(&dionica, sizeof(dionica), 1, dionice); if(foo==0) break; printf("Ime dionice: %s\n", dionica. ime); printf("Cijena dionice: %.2fKn\n", dionica. cijena); } fclose(dionice); }
|