Wczytywanie oczekiwanego typu zmiennych.
Ostatnio zmodyfikowano 2013-06-12 12:45
pekfos |
» 2013-06-10 19:36:29 to program rzutuje tą wartość na wartość o typie |
Nieprawda. |
|
Berux |
» 2013-06-10 19:48:02 @up:
To co robi? |
|
pekfos |
» 2013-06-10 19:59:55 Odczytuje to, co pasuje do wczytywanego typu, a resztę zostawia.
|
|
obi2exe Temat założony przez niniejszego użytkownika |
» 2013-06-10 22:55:57 Cóż, nikt nie wymyśli nic bardziej błyskotliwego??? Na pewno istnieje kilka dróg rozwiązania tak podstawowego problemu. Jeżeli ma ktoś jakieś pomysły albo doświadczenia związane z rozwiązaniem tej łamigłówki proszę pisać, będę przeglądał to forum. |
|
DejaVu |
» 2013-06-10 23:09:58 Najlepszą metodą jest wywołanie std::getline( cin, sTekst );
a następnie odczytanie tego co zostało wczytane. Odczytywanie liczby należy wówczas zrobić za pomocą funkcji strtod. Jeżeli wartość *pEnd będzie równa 0 to będzie to znaczyło, że wczytywanie liczby powiodło się (o ile string miał długość większą od zera). |
|
obi2exe Temat założony przez niniejszego użytkownika |
» 2013-06-11 09:36:39 OK, sprawdzę to. |
|
cichociemny |
» 2013-06-11 15:57:51 Wystarczy tylko wlasciwie zastosowac petle while i problem bedzie rozwiazany ps. mala podpowiedz: int main() { float liczba; while( true ) { cout << "Wprowadz liczbe naturalna: "; cout << endl; while( cin >> liczba && !czyCalkowita ) { } cout << endl; while( !( cin >> liczba ) || liczba <= 0 ) { } } cout << endl; // program nie ruszy dalej dopoki uzytkownik nie wprowadzi poprawnie oczekiwanej zmiennej, czyli liczby naturalnej // troche to jednak skomplikowane, ponizej prostsza wersja loop: cout << "Wprowadz liczbe naturalna : ";
while( !( cin >> liczba ) || liczba <= 0 ) { cout << "Wprowadzono niepoprawne dane !!!\n" << "Sprobuj jeszcze raz :)\n"; cin.clear(); cin.ignore( 10000, '\n' ); cout << "Wprowadz liczbe naturalna : "; } if( !czyCalkowita( liczba ) ) { cout << "Wprowadzona liczba nie jest liczba naturalna !!!\n" << "Sprobuj jeszcze raz :)\n"; cin.clear(); cin.ignore( 10000, '\n' ); goto loop; }
|
|
Kapuśniaczek96 |
» 2013-06-11 19:24:02 Sam wykonywałem wczoraj to zadanie i zapomniałeś dodać zabezpieczenie przed tym jeżeli użytkownik wpisze liczbę poniżej 1 albo większą niż 1000. No i warto rozważyć (przynajmniej ja tak zrobiłem) nad wyświetleniem komunikatu, że podana liczba jest większa lub mniejsza od wylosowanej. |
|
1 « 2 » 3 |