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 »  |