rendered paste body#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct{
char ime[30+1];
char prezime[50+1];
long matbr;
float placa;
char oznaka;
} place;
int main(){
FILE *fin;
char buffer[32];
float granica;
if ((fin = fopen("place.dat", "a+b"))==NULL) {
printf("Greska, ne mogu otvoriti datoteku\n");
getche();
return 1;
}
printf("Unesi granicnu prihoda: ");
fgets(buffer, sizeof(buffer), stdin);
granica=atof(buffer);
while(1){
fseek(fin, 0, SEEK_END);
printf("Ime: ");
memset(place.ime, 0, sizeof(place.ime));
fgets(place.ime, sizeof(place.ime), stdin);
printf("Prezime: ");
fgets(place.prezime, sizeof(place.prezime), stdin);
do{
printf("Matbr (0 za kraj): ");
fgets(buffer, sizeof(buffer), stdin);
place.matbr=atol(buffer);
} while(place.matbr<0);
if(place.matbr==0) break;
do{
printf("Placa: ");
fgets(buffer, sizeof(buffer), stdin);
place.placa=atof(buffer);
} while(place.placa>=10000);
printf("Oznaka: ");
place.oznaka=getchar();
getchar();
if(fwrite(&place, sizeof(place), 1, fin)==1){
printf("Podaci su uspjesno pohranjeni!\n\n");
} else {
printf("Greska pri pohrani podataka!\n\n");
}
/* citanje */
rewind(fin);
while (1) {
place.placa = ftell(fin) / sizeof(place) + 1;
fread(&place, sizeof(place), 1, fin);
if (feof(fin))
break;
if (place.placa > granica)
printf("Ime: %s\nPrezime: %s\nMatbr: %ld\nPlaca: %f\nOznaka: %c\n\n",
place.ime, place.prezime, place.matbr, place.placa, place.oznaka);
}
}
fclose(fin);
printf("Kraj unosa!");
getche();
return 0;
}