All pastes #558164 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-11 08:31 UTC
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;
}