Wczytywanie liczby z pliku, typu float
Ostatnio zmodyfikowano 2012-06-18 20:51
Trix Temat założony przez niniejszego użytkownika |
Wczytywanie liczby z pliku, typu float » 2012-06-17 13:01:52 Mam liczbę zapisaną w pliku, wczytałem ją do char ale jak to przerobić na float? Kod ma za zadanie wczytywać współrzędne wierzchołków mapy, tak wygląda kod odp. za wczytywanie vert: case 'v':
for( int znak_nr = 4; str[ znak_nr ] != ' '; znak_nr++ ) { tmpstr[ znak_nr - 4 ] = str[ znak_nr ]; }
break;
Jak widać liczba zapisana jest w zmiennej char tmpstr, a w char str wczytana jest cała linijka tekstu. Linijka danych o wierzchołkach: v (1.000000 1.000000 0.000000) (1.000000 0.000000 0.000000)
|
|
xevuel |
» 2012-06-17 13:06:20 Na przykład: atof | Konwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double). (funkcja) |
---|
strtod | Konwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double). (funkcja) |
---|
|
|
kubawal |
» 2012-06-18 15:42:50 można też za pomocą stringstream #include <sstream> #include <string>
template < class T > T from_string( string str ) { stringstream ss = str; T var; if( !ss >> var ) throw bad_arg( "Nie można wykonać konwersji" ); return var; }
/edit: sorry, była pomyłka |
|
Admixior |
» 2012-06-18 20:51:07 Tak na marginesie. Jeżeli korzystasz z std to czemu nie z fstream , a dokładnie funkcji operator>>() gdzie po prostu możesz tak samo (z takimi samymi regułami( do spacji lub '\n' [ew. std::eof] etc.)) i po prostu wczytujesz do floata; //PS Jeżeli z jakichś powodów nie możesz to ok. skorzystaj z tego co człowieki pisali wyżej xD |
|
« 1 » |