File: Stare vježbe/vjezbe13/78__datoteka_primjer.c
/* 78__datoteka_primjer.c ----- Program ucitava tekstualnu datoteku u kojoj se nalaze linije slijedeceg oblika: ime_grada temperatura Nakon sto se izracuna prosjecna vrijednost temperature medju onima koje se nalaze u datoteci, program ispisuje imena onih gradova koji imaju temperaturu vecu od prosjecne. */ #include <stdio.h> #include <stdlib.h> int main() { char ime_datoteke[256], grad[256]; float temperatura, prosjek=0.0, koliko=0; FILE *fp; printf("Unesite ime datoteke s podacima o gradovima i temperaturi: "); scanf("%s", ime_datoteke); if((fp=fopen(ime_datoteke, "rt")) == NULL) { printf("Ne mogu otvoriti datoteku %s za citanje.\n", ime_datoteke ); exit(1); } while(!feof(fp)) { fscanf(fp, "%s%f%*c", grad, &temperatura); prosjek+=temperatura; ++koliko; } if(koliko) prosjek/=koliko; printf("\nProsjecna temperatura iznosi: %.2f stupnjeva.\n", prosjek ); printf("Slijedeci gradovi imaju temperaturu vecu od prosjecne:\n"); /* Obzirom da smo u prethodnoj while petlji dosli do kraja datoteke (EOF) moramo FILE pointer fp postaviti ponovo na pocetak datoteke, sto cemo napraviti pozivom funkcije rewind. */ rewind(fp); while(!feof(fp)) { fscanf(fp, "%s%f%*c", grad, &temperatura); if(temperatura >= prosjek) printf("%s (%.2f)\n", grad, temperatura ); } fclose(fp); return 0; }
|