[C++] [Lekcja 26] Problem z getline'm
Ostatnio zmodyfikowano 2014-11-03 17:32
Mrucz47 Temat założony przez niniejszego użytkownika |
[C++] [Lekcja 26] Problem z getline'm » 2014-11-03 17:11:04 Witam wszystkich serdecznie jestem nowy na forum. Wypadło tak, że pierwszy post musiał trafić do "Szukam pomocy". Mianowicie: program z wczytywaniem tekstu za pomocą cin zrobiłem poprawnie. Lecz, gdy zmieniłem na getline, pomija mi wczytywanie drugiego imienia. Podaję imię - OK, nazwisko - OK, wiek - OK, drugie imie - zostaje pomijane, drugie nazwisko - OK, drugi wiek - OK. W czym tkwi problem? Z góry dziękuję za pomoc. :) Poniżej mój kod: #include <iostream> #include <string> using namespace std; void WpiszLiczbe( int & wiek ) { do { cin.clear(); cin.sync(); cin >> wiek; } while( cin.good() == false ); }
void wczytajOsobe( string & imie, string & nazwisko, int & wiek ) { cout << "Podaj swoje imie: "; getline( cin, imie ); cout << "Podaj swoje nazwisko: "; getline( cin, nazwisko ); cout << "Podaj swoj wiek: "; WpiszLiczbe( wiek ); }
void wypiszOsobe( string imie, string nazwisko, int wiek ) { cout << "Imie: " << imie << endl << "Nazwisko: " << nazwisko << endl << "Wiek: " << wiek << 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; }
|
|
michal11 |
» 2014-11-03 17:13:04 Wyczyść strumień przed getlinem bo zostaje w nim enter z cina. Wstawiaj kod w znaczniki. |
|
Mrucz47 Temat założony przez niniejszego użytkownika |
» 2014-11-03 17:32:14 Faktycznie działa, a ja czyściłem między imiem i nazwiskiem i byłem w szoku czemu nie działa, a to przecież przed imieniem było trzeba :D Przepraszam ale jestem nowy i nie wiem jak się kod wrzuca w klamry. Już czytam co i jak, także zaraz będzie poprawione. Dzięki, wszystko jasne. |
|
« 1 » |