/* napisati program koji ... erm.. ne da mi se vishe pisati :) uglavnom.. poglavlje 6 zadatak 1-11. Directory: /cdrom/byname/Various_Artists/The_History_of_Trance_-_Part_3-_The_Psychedelic_Movement_(double_CD)/ Playing MPEG stream from 01_Astral_Projection_-_Mahadeva_(original_version).mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo */ /* includovi.. */ #include #include #include /* #include */ /* definiraj strukturu */ typedef struct { char naziv[30+1]; char zemlja[20+1]; int minuta; char distributer[20+1]; char redatelj[30+1]; } data_t; /* izadji u slucaju fatalne greske */ void fatal(char *msg) { puts(msg); exit(EXIT_FAILURE); } /* potencijalni unos novih podataka */ int unos(FILE *dat) { data_t tmp; printf("\nunosi podatke (za kraj kao ime unesi 'kraj'):\n"); while (1) { printf("unesi ime kazete "); scanf("%s",tmp.naziv); if (!strcmp(tmp.naziv,"kraj")) break; printf("unesi zemlju porijekla "); scanf("%s", tmp.zemlja); printf("unesi minutazu "); scanf("%d", &tmp.minuta); printf("unesi distributera "); scanf("%s", tmp.distributer); printf("unesi redatelja "); scanf("%s", tmp.redatelj); fwrite(&tmp, sizeof(data_t), 1, dat); } return 1; } /* ispis zeljenog zapisa */ int ispis(FILE *dat) { data_t tmp; char naziv[30+1]; while (1) { printf("\nunesi trazeni naziv (za kraj unesi 'kraj') "); scanf("%s", naziv); if (!strcmp(naziv,"kraj")) return 0; fseek(dat, 0L, SEEK_SET); while(fread(&tmp, sizeof(data_t), 1, dat)) if (!strcmp(tmp.naziv,naziv)) fprintf(stderr, "pronasao: %s | %s | %d | %s | %s\n", tmp.naziv, tmp.zemlja, tmp.minuta, tmp.distributer, tmp.redatelj); } return 1; } /* zapisi sve zapise iz txt datoteke u bin i trazi josh zapisa */ void initialise(FILE *input, FILE *output) { data_t tmp; char format[]="%s %s %d %s %s"; while (fscanf(input, format, tmp.naziv, tmp.zemlja, &tmp.minuta, tmp.distributer, tmp.redatelj)!=EOF) { fprintf(stderr, "procitao: %s | %s | %d | %s | %s\n", tmp.naziv, tmp.zemlja, tmp.minuta, tmp.distributer, tmp.redatelj); fwrite(&tmp, sizeof(data_t), 1, output); } unos(output); ispis(output); } /* glavni program */ int main(void) { FILE *input, *output; if (!(input=fopen("KOSANOVIC","rt"))) fatal("I/O error"); if (!(output=fopen("MILADA","w+b"))) fatal("I/O error"); initialise(input, output); fclose(input); fclose(output); return(EXIT_SUCCESS); }