Zamienianie typu int na std::string
Ostatnio zmodyfikowano 2010-05-26 18:45
Patzick |
» 2010-05-26 17:50:34 akurat, że mam pod ręką gotowca do podrzucę dołączasz: IntToStringstring IntToString( int liczba ) { int l = liczba; ostringstream ss; ss << l; return ss.str(); } StringToIntint StringToInt( string tekst ) { stringstream konwersja( tekst ); int liczba; konwersja >> liczba; return liczba; }; |
|
filipesq Temat założony przez niniejszego użytkownika |
» 2010-05-26 17:55:42 main.cpp: In function `std::string IntToString(int)': main.cpp:13: error: `ostringstream' undeclared (first use this function) main.cpp:13: error: (Each undeclared identifier is reported only once for each function it appears in.) main.cpp:13: error: expected `;' before "ss" main.cpp:14: error: `ss' undeclared (first use this function)
main.cpp: In function `int StringToInt(std::string)': main.cpp:20: error: `stringstream' undeclared (first use this function)
main.cpp:20: error: expected `;' before "konwersja" main.cpp:22: error: `konwersja' undeclared (first use this function)
make.exe: *** [main.o] Error 1
Wykonanie zakończone
|
|
Aithne |
» 2010-05-26 18:00:36 Jest lepszy gotowiec, nazywa się boost::lexical_cast ;) Skoro jednak chcesz użyć rozwiązania zaproponowanego przez Patzicka, które ma problemy z wydajnością i sprawdzaniem błędów, to obczaj to ;): #include <sstream> #include <iostream>
std::string IntToString( int number ) { std::ostringstream ss; ss << number; return ss.str(); }
int StringToInt( const std::string & text ) { std::istringstream ss( text ); int result; ss >> result; return result; }
int main() { int foo = StringToInt( "14" ); std::string str = IntToString( - 21 ); std::cout << foo << ' ' << str << std::endl; } |
|
filipesq Temat założony przez niniejszego użytkownika |
Nie wierzę!!! » 2010-05-26 18:45:47 Wiem już czemu nie działo!!! Popełniłem błąd początkującego, tak głupi, że wstydzę się o nim napisać, więc zamykam temat.
P.S. Dzięki za pomoc. |
|
1 « 2 » |