[ MDBistabil @ 04.02.2012. 10:09 ] @
Pomoć ljudi! Zapeo sam na zadatku.Ideja je da se otvori datoteka (txt),u kojoj se u svakom redu nalaze koordinate x,y,z te sve koordinate iz datoteke spreme u niz struktura,i kasnije ispišu.Zvuci lagano,radio sam zadatke slicnog tipa,ali kako sam shvatio u ovom zadatku moram koristiti funkciju REALLOC zbog toga sto ne znam koliko ce u txt-datoteci biti koordinata(redova),pa sam alocirao memoriju za nekih 5 redova,i kasnije se ta memorija realocira sa realloc-om,a pošto rijetko radimo zadatke sa REALLOC-om,sumnjam da mi je tu negdje greška.Molim za pomoć. Tekst zadatka: Zadana je datoteka koordinate.txt u kojoj se u svakom redu nalazi x, y i z koordinata tocke. Napisati funkciju koja tocke zapisuje u niz struktura. Napisati i strukturu.Iz maina ispisati koordinate u nizu struktura. Code: #include<stdio.h> #include<stdlib.h> #define N 5 #define COUNTOF(x) sizeof(x)/sizeof(x[0]) struct koord { int x,y,z; }; void ispis (struct koord k) { printf("x: %d ",k.x); printf("y: %d ",k.y); printf("z: %d\n",k.z); } struct koord* funkcija(FILE* fp,int* i) { struct koord* k,*p; k=(struct koord*)malloc(N*sizeof(struct koord)); while(feof(fp)==0) { fscanf(fp,"%d %d %d\n",&k[*i].x,&k[*i].y,&k[*i].z); *i++; if(COUNTOF(k)==N-1) realloc(k,(2*N)*sizeof(struct koord)); } p=k; return p; } int main(void) { struct koord* novi; int i,brojac=0; FILE* fp=fopen("koordinate.txt","r"); if(fp==NULL) { perror(""); fclose(fp); } novi=funkcija(fp,&brojac); fclose(fp); for(i=0;i<brojac;i++) ispis(novi[i]); return 0; } [Ovu poruku je menjao X Files dana 04.02.2012. u 12:04 GMT+1] |