Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] [Lekcja 26] Problem z getline'm

Ostatnio zmodyfikowano 2014-11-03 17:32
Autor Wiadomość
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:
C/C++
#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;
}
P-119924
michal11
» 2014-11-03 17:13:04
Wyczyść strumień przed getlinem bo zostaje w nim enter z cina.
Wstawiaj kod w znaczniki.
P-119925
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.
P-119927
« 1 »
  Strona 1 z 1