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