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

Rzutowanie int, float na string w c++

Object Storage Arubacloud
0 głosów
2,786 wizyt
pytanie zadane 11 listopada 2016 w C i C++ przez programista15k Początkujący (370 p.)
Witam, mam taki problem ponieważ potrzebuję dokonać rzutowania int, float na string jednak
nie mogę użyć "std::to_string();" nie ma innej alternatywy? odpowiednika atoi()?
komentarz 11 listopada 2016 przez criss Mędrzec (172,590 p.)
Jest itoa. Ale dlaczego nie możesz użyć to_string?

PS: to nie rzutowanie tylko konwersja :P
komentarz 11 listopada 2016 przez programista15k Początkujący (370 p.)
dzięki! niestety itoa nie użyję do typu float. Gdy używam to_string wyskakuje mi błąd chociaż mam #include <string> dlatego sądzę, że nie kompiluje pod C++11 . Mam codeblocks

okej ;-)
komentarz 11 listopada 2016 przez MetGang Nałogowiec (34,360 p.)
Zgaduję, że używasz CodeBlocksa z wersją kompilator 4.9.2, na tejże wersji kompilatora GCC funkcja to_string() nie jest dostępna (pomimo C++11). Dopiero od GCC5 jest ona możliwa do użytku.

Dlatego jeśli nie chcesz się "męczyć" ze zmianą kompilatora to polecam std::stringstream, dzięki któremu możesz przeprowadzić konwersję między praktycznie każdym typem (cstring, prymitywy, stringi).
komentarz 11 listopada 2016 przez criss Mędrzec (172,590 p.)

To sprawdź czy kompilujesz w c++11. Jeśli tak, a kompilator nadal nie widzi std::to_string, to pewnie chodzi o ten bug (też kiedyś miałem ten problem). Wystarczy, że zrobisz to co jest napisane pod tym linkiem.

1 odpowiedź

0 głosów
odpowiedź 11 listopada 2016 przez Grzyboo Nałogowiec (28,860 p.)
Trzy najbardziej popularne metody:

to_string (Od C++11 bodajże)

ftoa - chyba jest coś takiego

stringstream - najprzyjemniejszy, można wszystko wrzucić do takiego streama i potem pobieramy wszystko w formie stringa.
komentarz 11 listopada 2016 przez adrian17 Ekspert (344,860 p.)
jak stringstream jest wygodniejszy od to_string?
komentarz 11 listopada 2016 przez MetGang Nałogowiec (34,360 p.)

Jak opakujesz we własną funkcję to może być równie wygodne, a używając stringstream i wariadycznych szablonów możesz nawet zmienić N zmiennych w jeden ciąg stringa,

std::string Str = ToString("C++", 11, " rulez", '!');

Oczywiście trzeba to dobrze zaimplementować. No i prędkość konwersji naraz jest szybsza od pojedynczych z konkatenacją.

komentarz 11 listopada 2016 przez adrian17 Ekspert (344,860 p.)

Um, to lepiej już skorzystać z czegoś znanego i sprawdzonego, jak https://github.com/fmtlib/fmt

std::string s = fmt::format("C++{} rulez{}", 11, '!');

 

komentarz 11 listopada 2016 przez MetGang Nałogowiec (34,360 p.)
Jak komu wygodniej, ale jednak wolę swoją wersję (zamiast tej rodem z C# {1}, {2}).

Poza tym jest różnica pomiędzy konwersją pojedynczych zmiennych i dołączaniu ich do strumienia, a analizą cstringu i wstawianiu tam zmiennych jak to się poniekąd dzieje w printf.
komentarz 12 listopada 2016 przez Grzyboo Nałogowiec (28,860 p.)
Nigdzie nie napisałem, że jest wygodniejszy :P

Napisałem, że jest najprzyjemniejszy, bo po prostu ładujemy wszystko, co chcemy do takiego streama i wyciągamy w stringu.

Podobne pytania

0 głosów
2 odpowiedzi 528 wizyt
pytanie zadane 29 lipca 2021 w C i C++ przez Stasiu Nowicjusz (190 p.)
0 głosów
2 odpowiedzi 724 wizyt
pytanie zadane 11 grudnia 2019 w C i C++ przez amtrax Dyskutant (9,630 p.)
0 głosów
1 odpowiedź 242 wizyt

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 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!

...