Symulator EU07 (i nie tylko) > Na warsztacie
Ratowanie MaSZyny, implementacja ficzerow od Q do głównej gałęzi, lifting exe
tmj:
--- Cytat: gfirlejczyk w 03 Marca 2016, 14:05:42 ---Jak dla mnie we wpisie ini podajesz typ jako string (zgodnie z tym co napisałeś) a w parserze próbujesz odczytać int. Czegoś nie rozumiem?
--- Koniec cytatu ---
Na moje to typ jest podany jako liczba w zakresie 1-4. Parser wywiedziony jest z std::basic_stringstream i jako taki przeprowadza automatyczna konwersje takiego "tekstu" do podstawowych typow numerycznych (w tym wypadku int) poprzez operator>> Podobnie jak robi to z reszta parametrow.
Edit: a tak przy okazji
--- Cytuj --- parser.getTokens(7);
parser >> QGlobal::snow_area >> QGlobal::snow_size >> QGlobal::snow_srcf >> QGlobal::snow_srct >> QGlobal::snow_sraf >> QGlobal::snow_srat;
parser.getTokens(3);
parser >> QGlobal::snow_color >> QGlobal::snow_tex >> QGlobal::snow_light >> QGlobal::snow_blend;
--- Koniec cytatu ---
Tu jest chyba blad -- parser pobiera 7 parametrow, ale przekazuje dalej 6. Potem odczytuje 3 ale probuje przekazac 4. Problem w tym ze getTokens() kasuje poprzednia zawartosc bufora, wiec snow_color dostanie zawartosc snow_tex itd, a snow_blend nie dostanie nic.
queuedEU:
Ano, przy edytowaniu zmian wkleilem nowa zmienna a nie poprawilem ile pobiera, no ale w kodzie jest wszystko ok. A ktos Ty? Nowy programista do pomocy? :D
firleju:
Nie zauważyłem, że opis jest jednocześnie int i string ;) Cały czas bylem pewien, że typ jest podawany we wpisie jako string nie jako int. Z drugiej strony byłoby to troszkę bardziej intuicyjne.
queuedEU:
Zrobilbym nawet we wpisie podawanie nazwy typu wyliczeniowego, ale w c++ konwersja typow na string i odwrotnie nie jest userfriendly.
W pascalu to jest jedna linijka kodu, przyklady dla c++ sa na internetach, ale jest to przerost formy nad trescia.
firleju:
Najprostsze rozwiązania są najlepsze:
--- Kod: ---if ... else if ... else if ...
--- Koniec kodu ---
Nawigacja
[#] Następna strona
Idź do wersji pełnej