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

[Rozdzial 26] Zadanie domowe 2.

Ostatnio zmodyfikowano 2015-12-07 16:30
Autor Wiadomość
baddevil96
Temat założony przez niniejszego użytkownika
[Rozdzial 26] Zadanie domowe 2.
» 2015-12-07 16:21:30
Hej.
Wg. przykładu z rozdziału 26, metoda std::getline() powinna zapisywac kilka slow w jednej zmiennej, u mnie zamiast tego pobiera pierwsze slowo, a kolejne ignoruje, w czym moze tkwic problem?
C/C++
#include <iostream>
#include <limits>
#include <string>
using namespace std;

void wczytajOsobe( string & dane )
{
    int warunek;
    do {
        bool czyWczytano;
        cout << endl << "Podaj imie, nazwisko i wiek: ";
        cin >> dane;
        czyWczytano = cin.good();
        if( czyWczytano == false ) {
            warunek = 0;
            cin.clear();
            cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
        } else {
            warunek = 1;
            cin.clear();
            cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
        }
       
    } while( warunek != 1 );
   
}

void wypiszOsobe( string dane )
{
    cout << endl << "Twoje dane osobowe to: " << dane << endl;
}


int main()
{
    std::string dane[ 2 ];
    for( int i = 0; i < 2; i++ )
         wczytajOsobe( dane[ i ] );
   
    for( int i = 0; i < 2; i++ )
         wypiszOsobe( dane[ i ] );
   
    return 0;
}
 
P-141577
carlosmay
» 2015-12-07 16:28:23
cin >> dane;
 może w tym, że nie używasz funkcji std::getline() ?
P-141579
baddevil96
Temat założony przez niniejszego użytkownika
» 2015-12-07 16:30:44
da sie jakos temat usunac?
P-141580
« 1 »
  Strona 1 z 1