naime podaci idu na primer ovako:
unsigned short unsigned short double double unsigned char i tako dalje (bez praznina,znaci podatak ide odmah za podatkom)
i sad ja lepo znaci treba da ucitam ceo taj binarni fajl u neku promenljivu,zatim da se pozicioniram sa fseek na neko mesto u datoteci, a onda sa fread da procitam izabrani tip podatka.
evo ga i moj kod koji sam pisao:
Code:
FILE* f = fopen("ac12_003.log", "rb");
rewind (f);
fseek(f,pos[0]+4,SEEK_SET);
unsigned short foo;
fread(&foo,1,sizeof(foo),f);
printf("%u\n",foo); /*ovaj deo koda brlja i ne daje prave vrednosti. treba da dobijem 3600 umesto 4110*/
unsigned char foo1;
fread(&foo1,1,sizeof(foo1),f);
printf("%u\n",foo1); /* ovaj deo koda radi sasvim ok*/
double foo2;
fread(&foo2,1,sizeof(foo2),f);
printf("%f\n",foo2);/* ovaj deo koda takodje brlja i daje neke ogromneee vrednosti-gluposti tipa 1,2345 e+138*/
FILE* f = fopen("ac12_003.log", "rb");
rewind (f);
fseek(f,pos[0]+4,SEEK_SET);
unsigned short foo;
fread(&foo,1,sizeof(foo),f);
printf("%u\n",foo); /*ovaj deo koda brlja i ne daje prave vrednosti. treba da dobijem 3600 umesto 4110*/
unsigned char foo1;
fread(&foo1,1,sizeof(foo1),f);
printf("%u\n",foo1); /* ovaj deo koda radi sasvim ok*/
double foo2;
fread(&foo2,1,sizeof(foo2),f);
printf("%f\n",foo2);/* ovaj deo koda takodje brlja i daje neke ogromneee vrednosti-gluposti tipa 1,2345 e+138*/
Pitanje je gde gresim kod citanja podataka tipa double,tipa unsigned short , tipa long? znam sta treba da dobijem. ovaj isti kod mi savrseno radi u MatLabu(jeste da se malo razlikuje,ali je jako slican programski jezik)
Znam neke osnovne stvari o programiranju u C++,ali sam pocetnik i nije mi jasno gde gresim. da li nesto ne valja u samim argumentima funkcije fread, ili funkcije printf. probao sam i sa std::cout<<foo<<std::endl; i isto dobijam, tako da sam poceo da sumnjam da je najverovatnije greska u samoj funkciji fread. trazio sam po internetu i nesto ne mogu da nadjem odgovarajuce resenje. vrlo jednostavan problem. ali nesto me koci. imao sam programiranje davno i dosta sam stvari zaboravio, a nemam koga ni da pitam,pa se mucim od sinoc kao gresan sa dusom sto rekao nas narod. svaka pomoc i sugestija je jako dobro dosla. neka izmena koda,bilo sta. molim Vas. hvala