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

Zamienianie typu int na std::string

Ostatnio zmodyfikowano 2010-05-26 18:45
Autor Wiadomość
filipesq
Temat założony przez niniejszego użytkownika
Zamienianie typu int na std::string
» 2010-05-26 17:07:43
Wiem, wiem. Znowu mam problem, ale to dlatego, że piszę większy projekt. Tamto zniknięcie kodu wyszło tylko na dobre:
- Piszę teraz obiektowo
- Zoptymalizowałem kod
- Naprawiłem pewien błąd
- Stworzyłem w pełni automatyczny "dobieracz plansz" (i tu mam problem)

Ważne: nie używam mapy kafelkowej!!!

Otóż operuję na typach int i std::string. W ińcie przechowuję nr poziomu, a w stringu nazwę. Nazwy plansz wyglądają tak:
- Poziom0 (samouczek): "Plat1.bmp"
- Poziom1: "Plat2.bmp"
itd.

I chciałbym wykonać taką operację:

std::string plansza = "Plat" + (poziom+1) + ".bmp";

Jednak jest to niemożliwe, ponieważ zmienna "poziom" jest typu int. Dlatego muszę wykonać taką operację:

poziom++;
//Tu zmienną "poziom" typu int zamieniam na zmienną "spoziom" typu string
std::string plansza = "Plat" + spoziom + ".bmp";

Tak przedstawia się mój problem.

Teraz moje pytania:
- Jak zamienić int na string?
- Jeśli to niemożliwe, to jak inaczej rozwiązać mój problem?
P-17173
Elaine
» 2010-05-26 17:13:30
stringstream?
P-17174
filipesq
Temat założony przez niniejszego użytkownika
» 2010-05-26 17:14:55
Dokładniej?

//edit

Żeby nie było: znalazłem coś w googlach. Nawet się kompiluję. Ale używam allegro i wyświetla się czarne okno, a po sekundzie znika.

Mam tak:
C/C++
//Nagówki:
#include <allegro.h>
#include <string>
#include <sstream>

//...

//Zmienne do planszy:
int poziom = 0;

bool wczytal = false;

std::stringstream splansza;
std::string plansza;

//...

//W pętli while:
if( poziom == 0 && /*Warunek przejścia samouczka*/ )
{
    poziom++;
    Cball.x = 10;
    wczytal = false;
} else if( /*Warunek przejścia jakiegokolwiek poziomu*/ )
{
    poziom--;
    Cball.x = SCREEN_W - 10;
    wczytal = false;
}

if( wczytal == false )
{
    destroy_bitmap( plat );
    splansza << "Plat" << poziom;
    plansza = splansza.str();
    plat = load_bmp( plansza.c_str(), default_palette );
    wczytal = true;
}
//...
 
P-17175
Aithne
» 2010-05-26 17:30:43
Sprawdźmy pierwszy wynik po wpisaniu "stringstream" w Google: http://www.cplusplus.com/reference/iostream/stringstream/ Dokumentacja wystarczy, czy oczekujesz gotowca? ;)
P-17176
Dragonit
» 2010-05-26 17:39:11
może:

IntToStr(poziom);

a moze:

poziom(char);

ale nie wiem czy tak zadziala ale mozesz sprawdzic;

P-17177
filipesq
Temat założony przez niniejszego użytkownika
» 2010-05-26 17:40:15
Dokumentacja wystarczy, ale mam problem (z edytowałem posta u góry, bo dodaliśmy je jednocześnie)
P-17179
Aithne
» 2010-05-26 17:44:35
Czyżbyś zapomniał o rozszerzeniu? ;)
P-17180
Dragonit
» 2010-05-26 17:49:41
No wlasnie. Rozszerzenie:

plansza = splansza.str() + ".bmp";  
P-17181
« 1 » 2
  Strona 1 z 2 Następna strona