[rozdział 26] zadanie 2.
Ostatnio zmodyfikowano 2015-12-23 22:24
Dexterowy Temat założony przez niniejszego użytkownika |
[rozdział 26] zadanie 2. » 2015-12-23 20:23:52 #include <iostream> #include <string> #include <cstdlib>
using namespace std;
void wczytajOsobe( string & tabImie, string & tabNazw, int & tabWiek ) { bool check = false; static int ilosc = 0; system( "cls" ); ilosc++; cout << "Osoba nr. " << ilosc << endl; cout << "Podaj imie: "; getline( cin, tabImie ); cout << endl << "Podaj nazwisko: "; getline( cin, tabNazw ); do { cout << endl << "Podaj wiek: "; if( check ) cin.clear(); cin.sync(); cin >> tabWiek; } while( !cin.good() ); } void wypiszOsobe( string & tabImie, string & tabNazw, int & tabWiek ) { cout << "Imie: " << tabImie << endl; cout << "Nazwisko: " << tabNazw << endl; cout << "Wiek: " << tabWiek << endl << endl; } int main() { string imie[ 2 ]; string nazwisko[ 2 ]; int wiek[ 2 ]; for( int i = 0; i < 2; i++ ) wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] ); for( int i = 0; i < 2; i++ ) wypiszOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] ); return 0; } Siemanko. mam następujący problem: Po kompilacji pierwsza osoba jest wczytywana normalnie ale przy drugiej pomija wpisanie imienia. Prosze o pomoc i wyjasnienie. |
|
wojtu111 |
Hej » 2015-12-23 20:54:14 Tutaj masz rozwiązanie swojego problemu: Lekcja 9 Obsługa strumienia wejściowego w podrozdziale Czyszczenie zawartości strumienia wejściowego. Po prostu w funkcji która wczytuje przed pierwszym wczytaniem dodaj clear i sync. Powinno bez problemów działać :) Pozdrawiam. |
|
carlosmay |
» 2015-12-23 21:13:15 cin >> tabWiek; cin.get();
|
albo rozwiązanie kolegi @wojtu111. a ta zmienna ??? Jej istnienie nie ma sensu. Ja pozbyłbym się tej zmiennej i wczytywanie wieku rozwiązał tak while( !( cin >> tabWiek ) ) { cin.clear(); cin.ignore( numeric_limits < streamsize >::max(), '\n' ); cout << "Podaj ponownie: "; }
|
|
Dexterowy Temat założony przez niniejszego użytkownika |
Dzięki! » 2015-12-23 22:17:44 Dzięki wielkie za pomoc. Zmiennej zapomniałem usunąć, bo próbowałem coś wykombinować. Jest gdzieś tutaj opisana funkcja cin.ignore() ? |
|
carlosmay |
» 2015-12-23 22:24:40 W linku kolegi @wojtu111 |
|
« 1 » |