przecinki i kropki :P

0

;p
pisze plugin do 3ds max ktory mi ma eksportowac modele do jakiegos mojego formatu a nastepnie staram sie go odczytac i wyswietlic w okienku z wykorzystaniem OpenGL'a tylko pojawil sie pewien problem w pluginie do maksa zapisuje dane do pliku przy pomocy

fprintf(stream,"%f %f %f \n",v0.x,v0.y,v0.z);

a odczytuje po linijce przy pomocy komendy fgets
a nastepnie formatuje wczytana linijke po przez

sscanf(oneline, "%f %f %f", &x, &y, &z);

i pojawia sie problem bo fprintf zapisuje liczby z przecinkiem np.
130,967773 41,641125 -3,367624
a sscanf poprawnie odczytuje gdy zamiast przecinku jest kropka np.
130.967773 41.641125 -3.367624

Jakich specyfikatorow typu uzyc w tych komendach zeby nie trzeba bylo robic dodatkowej konwersji??ewentualnie jakich komend?? [???]

0

ja bym zrobił inaczej : najpierw zapisywałbym do pliku za pomocą : fprintf , a czytał z pliku za pomocą fscanf , np:
fscanf(plik,"%lf",&zmienna_double);
jak masz w pliku :
10 23 34
to 3 razy zastosowana funckja fscanf(plik,"%d",&zmienna);
elegancko przeczyta ci te liczby .
jeśli dane można zapisywać jako ciąg struktur to polecam użycie funkcji fwrite , fread . wtedy np zdefiniujesz sobie jedną strukture gdzie będziesz trzymał dane i zapiszesz tyle struktur ile bedziesz chciał za pomocą funkcji fwrite :
fwrite(&struktury,sizeof(struktura),x,plik);
gdzie x o ile dobrze pamiętam , to ile struktur jest do zapisania , jeśli wpiszesz 1 to zapisze tylko tą strukture , jak będzie 2 to zapisze to co jest w pamięci od końca danej struktury do adresu większego o sizeof(struktura) . Tylko wtedy będziesz miał dane zapisane do pliku zdefiniowanego , czyli zapomnij o edycji przez F4 .
A tak w ogóle , to teraz zamiast używać FILE * i fopen , stosuje sie do tego strumienie : ifstream , ofstream .

0

Dzieki TrOuBLE :-) za pomoc zaraz poeksperymentuje z tym [hurra]

1 użytkowników online, w tym zalogowanych: 0, gości: 1