zamiana 4 cyfrowej liczby na stringa
Ostatnio zmodyfikowano 2015-05-16 15:03
wojtek.997 Temat założony przez niniejszego użytkownika |
zamiana 4 cyfrowej liczby na stringa » 2015-05-15 20:34:17 Witam, otóż mam taki fragment kodu: cout<<"Podaj rok z przedzialu 1900-2100 "<<endl; cin>>a>>b>>c>>d; if (????????>=1900 && ???????<=2100)//warunek sprawdzajacy czy rok jest z przedzialu
i jak mam teraz te liczbe skladajaca sie z 4 cyfr zamienic aby w miejscu moich "????" sprawdzilo czy liczba jest z zakresu? i potem po sprawdzeniu znowu liczba musi byc rozbita na 4 cyfry... |
|
pekfos |
» 2015-05-15 21:05:43 Wczytuj jako jeden int? |
|
Maciek |
» 2015-05-15 22:23:59 Sposób jest bardzo, bardzo prosty, podam przykład: #include <boost/lexical_cast.hpp> #include <string> #include <iostream> #include <sstream>
int main() { int val = 1978; std::cout << boost::lexical_cast < std::string >( val ) << std::endl; int a = 1, b = 9, c = 7, d = 8; std::stringstream str; str << a << b << c << d; std::cout << str.str() << std::endl; }
Jak widzisz mozesz wykorzystać szablon z bibliteki boost - lexical_cast i w prosty sposób zamienić int na std::string który jest parametrem szablonu. Drugi wariant który pokazałem wykorzystuje klasę stringstream z biblioteki standardowej którą ma każdy kompilator C++. Zachowuje się jak strumień i potem metoda składowa składowa str() zwróci ci string do wykorzystania we własnym zakresie. pozdrawiam i miłego testowania tych klas, są one bardzo praktyczne :). |
|
wojtek.997 Temat założony przez niniejszego użytkownika |
» 2015-05-15 23:42:41 No dobrze, to jakbym chciał tym drugim sposobem :) to Pisze to cout<<"Podaj rok z przedzialu 1900-2100 "<<endl; cin>>a>>b>>c>>d; // I CO DALEJ? if (????????>=1900 && ???????<=2100)// co wpisać w miejsce moich "???" Bo potem musi ponownie rozpisać liczbę w formie >>a>>b>>C>>D; bo następnie mam switche uzależnione od tych 4 zmiennych. Prosze o pomoc :)
|
|
Piastlis |
» 2015-05-16 12:42:37 Pomnóż i dodaj? |
|
aksen |
» 2015-05-16 15:03:56 problem matematyczny na poziomie gimbazy int x = a * 1000 + b * 100 + c * 10 + d;
if( x >= 1900 && x <= 2100 ) { .... }
|
|
« 1 » |