Strona 1 z 2

[+] C - zapis float/double do pliku przecinek zamiast kropki

: 12 kwietnia 2007, 19:28
autor: slomek
Pisze program, który zapisuje liczby typu double do pliku.
Po odpaleniu czesc calkowita od ulamka oddzielona jest przecinkiem, a wiekszosc programow (w tym programy napisane w C) zakładają, że powinna być to kropka.
Podejrzewam, że to kwestia lokalizacji systemu.
Jak to zmienić?

: 12 kwietnia 2007, 19:33
autor: mlyczek
slomek pisze:programy napisane w C) zakładają, że powinna być to kropka.
a w czym Ty piszesz ten program?

: 12 kwietnia 2007, 19:37
autor: slomek
C. Kompilator gcc 4.1.2

: 12 kwietnia 2007, 19:39
autor: mlyczek
No to skoro programy w C oczekują, że zmienne double będą z kropką, a Ty piszesz w C, to dlaczego te liczby w pliku zapisywane są z przecinkiem?

: 12 kwietnia 2007, 19:43
autor: velmafia
mlyczek pisze:No to skoro programy w C oczekują, że zmienne double będą z kropką, a Ty piszesz w C, to dlaczego te liczby w pliku zapisywane są z przecinkiem?

chyba właśnie o rozwiązanie tego chodziło dla autora tego tematu ;)

: 12 kwietnia 2007, 19:57
autor: slomek
chyba właśnie o rozwiązanie tego chodziło dla autora tego tematu ;]
W rzeczy samej ;)
Ciekawe, że program zapisujacy do pliku liczby zmiennoprzecinkowe, a później z niego czytający sypie się :-P

: 12 kwietnia 2007, 20:01
autor: Kaka'
Możesz pokazać treść programu? (znaczy się, kod) - no chyba, że jakiś długi, bardzo długi napisałeś ;) .

: 12 kwietnia 2007, 20:08
autor: slomek
To jest dłuuuuuuuuuuuuuugi program- korzysta z OpenCV i GSL.
Sam zapis jest tradycyjny i banalny:

Kod: Zaznacz cały

fprintf(plik,"%f",liczba_zmiennoprzecinkowa);

: 12 kwietnia 2007, 20:13
autor: mlyczek
A odczyt jakim polceniem robisz?

: 12 kwietnia 2007, 20:18
autor: slomek

Kod: Zaznacz cały

fscanf(plik,"%f",&zmienna);
Tylko nie chodzi mi o ten odczyt. Bardziej boli problem z odczytem pliku z przecinkami przez programy typu Matlab, gnuplot itp.