Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wczytywanie liczby z pliku, typu float

Ostatnio zmodyfikowano 2012-06-18 20:51
Autor Wiadomość
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:
C/C++
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)
P-58592
xevuel
» 2012-06-17 13:06:20
Na przykład:
atofKonwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double). (funkcja)
strtodKonwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double). (funkcja)
P-58593
kubawal
» 2012-06-18 15:42:50
można też za pomocą stringstream

C/C++
#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
P-58631
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
P-58669
« 1 »
  Strona 1 z 1