Problem z funkcją , walidacja numeru PESEL
Ostatnio zmodyfikowano 2016-02-15 22:49
carlosmay |
» 2016-02-15 21:38:35 Można też ograniczyć ilość znaków przy wczytywaniu. std::string PESEL; std::cin >> std::setw( 11 ) >> PESEL; std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cout << "znaki: " << PESEL.size() << " >" << PESEL << "<" << std::endl; |
|
Gibas11 |
» 2016-02-15 22:49:56 Tylko po co męczyć się ze stringiem? Nie lepiej tak: #include <iostream> #include <limits>
int pesel[ 11 ]; int main() { for( int i = 0; i < 11; i++ ) pesel[ i ] = std::cin.get() - '0'; std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); return 0; }
? Potem będzie łatwiej przy sprawdzaniu poprawności i podanie liter łatwiej wyłapać, dzięki cin.bad() . |
|
1 « 2 » |