File: Stare vježbe/vjezbe13/77__datoteka_broj_znakova.c
/* 77__datoteka_broj_znakova.c ----- Program ucitava ime datoteke, te za danu datoteku ispisuje koliko se ukupno u njoj nalazi znakova, rijeci i linija. Program zavrsava s radom kada korisnik unese "0". */ #include <stdio.h> #include <string.h> #define UNUTAR_RIJECI 1 #define IZVAN_RIJECI 0 void broji(FILE* fp, int* znakova, int* rijeci, int* linija) { char ch; int status=IZVAN_RIJECI; while ((ch=getc(fp)) != EOF) { (*znakova)++; if (ch == '\n') (*linija)++; if (ch == ' ' || ch == '\n' || ch == '\t') status = IZVAN_RIJECI; else if (status == IZVAN_RIJECI) { status = UNUTAR_RIJECI; (*rijeci)++; } } } int main() { int znakova, rijeci, linija, status; char ime_datoteke[256]; FILE* fp; do { printf("Unesi ime datoteke: "); scanf("%s", ime_datoteke); if(status=strcmp(ime_datoteke, "0")) { if((fp=fopen(ime_datoteke, "r")) == NULL) { printf("Ne mogu otvoriti datoteku %s.\n", ime_datoteke ); continue; } znakova=rijeci=linija=0; broji(fp, &znakova, &rijeci, &linija); printf("Broj znakova: %d, broj rijeci: %d, broj linija: %d\n\n", znakova, rijeci, linija); fclose(fp); } } while(status); return 0; }
|