• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmiana zmiennej typu int na typ string

Object Storage Arubacloud
0 głosów
543 wizyt
pytanie zadane 24 października 2019 w C i C++ przez KumberTwo Dyskutant (8,270 p.)
otwarte ponownie 27 października 2019 przez KumberTwo
Chce dopisać do stringa inta i nie wiem jak to zrobić. Próbowałem używać rzutowania: string(nazwa_zmiennej), próbowałem static_casta używać, ale nic nie działa. Pomocy!

2 odpowiedzi

+2 głosów
odpowiedź 24 października 2019 przez tangarr Mędrzec (154,860 p.)
wybrane 30 października 2019 przez KumberTwo
 
Najlepsza

Polecam funkcję std::to_string

komentarz 27 października 2019 przez KumberTwo Dyskutant (8,270 p.)

Próbowałem, ale coś nie działa. sad Ale i tak dzięki, bo to pewnie przeze mnie nie działa.

komentarz 28 października 2019 przez tangarr Mędrzec (154,860 p.)

Przykład użycia:

std::string napis = "napis_";
int liczba = 1;
std::string sklejony_napis = napis + std::to_string(liczba);

 

komentarz 29 października 2019 przez KumberTwo Dyskutant (8,270 p.)

Nawet jak wkleję ten przykład do codeblocksa to i tak nie działa

#include <iostream>
#include <string>

int main()
{
    std::string napis = "napis_";
    int liczba = 1;
    std::string sklejony_napis = napis + std::to_string(liczba);
}

I wyskakuje komunikat:
|8|error: 'to_string' is not a member of 'std'

 

1
komentarz 29 października 2019 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Kompiluj z flagą -std=c++11 lub nawet używając nowszego standardu
komentarz 30 października 2019 przez KumberTwo Dyskutant (8,270 p.)
Jestem bardzo początkujący i nie za bardzo wiem gdzie wstawić tę frazę - czy w mainie czy poza. Próbowałem obu opcji i wyrzuca errora że std nie jest nazwą zmiennej. Mógłbyś trochę rozwinąć odpowiedź bo nie wiem nawet co ta flaga ma robić i czym w ogóle jest flaga.
1
komentarz 30 października 2019 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Niee, tego się w kodzie nie umieszcza. laugh

Poszukaj w ustawieniach projektu, gdzieś w sekcji kompilatora i tam poszukaj miejsca do wpisania flag. Niestety nie używam Code::Blocksa i nie jestem w stanie Ci konkretnie tego w tej chwili powiedzieć.

1
komentarz 30 października 2019 przez KumberTwo Dyskutant (8,270 p.)

Znalazłem: Settings -> compiler -> compiler flags i zaznaczyłem -std=c++11 i wszystko śmiga tak jak powinno. Dzięki za pomoc - bo łatwo nie było wink

1
komentarz 30 października 2019 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Super! Polecam od razu ustawiać sobie taką opcję (a nawet -std=c++17 o ile masz dostatecznie nowy kompilator, ale chyba powinieneś), bo to naprawdę przydatne, a z czasem będzie wręcz konieczne - zyskujesz masę narzędzi, które powodują że C++ nie jest zwykłym C z klasami :P
komentarz 30 października 2019 przez KumberTwo Dyskutant (8,270 p.)
Mam opcje -std=c++14, jest ona nowsza od tej 11?
komentarz 30 października 2019 przez Eryk Andrzejewski Mędrzec (164,260 p.)
No tak
+1 głos
odpowiedź 24 października 2019 przez boonbonek Początkujący (280 p.)

Spróbuj tego:

int i = 42;
ostringstream ss;
ss << i;
string str = ss.str();

 

komentarz 27 października 2019 przez KumberTwo Dyskutant (8,270 p.)
Właśnie na taką odpowiedz czekałem. Dzięki bardzo, wszystko działa.
komentarz 27 października 2019 przez KumberTwo Dyskutant (8,270 p.)

@boonbonek,
 Napotkałem jednak jeden problem. Otóż

ostringstream ss;
while(n > 1)
{
    chwil = 2*(n%5);
    ss << chwil;
    wynik = ss.str() + wynik;
    n /= 5;
}

zmienna "wynik" jest równa "wynik + ss.str() + wynik" zamiast "ss.str() + wynik" a chce, aby tak kolejność się zgadała, więc nie usunę " + wynik". Masz jakiś pomysł by to rozwiązać?

PS
Sory, ale nie powinienem mówić do czego służy program i co ma obliczać.

1
komentarz 28 października 2019 przez tangarr Mędrzec (154,860 p.)

Musisz wyczyścić strumień ss przed kolejnym użyciem.

ss.str("");
//lub jeszcze lepiej:
//ss.str(std::string());

 

komentarz 29 października 2019 przez KumberTwo Dyskutant (8,270 p.)

Dzięki, już wszystko śmiga yes

Podobne pytania

0 głosów
1 odpowiedź 365 wizyt
pytanie zadane 31 października 2017 w C i C++ przez PanJaqb Początkujący (360 p.)
0 głosów
1 odpowiedź 2,787 wizyt
pytanie zadane 11 listopada 2016 w C i C++ przez programista15k Początkujący (370 p.)
0 głosów
0 odpowiedzi 108 wizyt
pytanie zadane 23 grudnia 2019 w C i C++ przez BezBarwny Użytkownik (700 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...