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

Rozdział 26 zadanie 2

Ostatnio zmodyfikowano 2015-12-01 00:30
Autor Wiadomość
Matis28
Temat założony przez niniejszego użytkownika
Rozdział 26 zadanie 2
» 2015-12-01 00:02:15
Cześć mam problem z moim kodem
C/C++
#include <string>
#include <iostream>
#include <limits>


using namespace std;

void wczytajOsobe( string & imie, string & nazwisko, int & wiek ) {
    cout << "Podaj imie: ";
    getline( cin, imie );
    cout << "Podaj nazwisko: ";
    getline( cin, nazwisko );
    do {
        cin.clear();
        cin.ignore( numeric_limits < streamsize >::max(), '\n' );
        cout << "Podaj wiek: ";
        cin >> wiek;
    } while( !cin.good() );
   
}


void wypiszOsobe( string imie, string nazwisko, int wiek ) {
    cout << endl << "Imie: " << imie << endl << "Nazwisko: " << nazwisko << endl << "Wiek: " << wiek << endl;
}

int main()
{
    std::string imie[ 2 ];
    std::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 ] );
   
    system( "pause" );
    return 0;
}
Program przy wprowadzaniu nazwiska po raz pierwszy pyta o nie normalnie i zapisuje je do tablicy po czym zamiast wyświetlić podaj wiek schodzi linię niżej i czeka aż wprowadzi się jakieś znaki.Przy drugim wywołaniu funkcji wczytajOsobe pomija pytanie o imie a o nazwisko również pyta dwa razy zapisując pierwszą podaną wartość.
P-141209
carlosmay
» 2015-12-01 00:08:47
C/C++
cout << "Podaj wiek: ";
cin >> wiek;
cin.clear();
cin.ignore( numeric_limits < streamsize >::max(), '\n' );
 Cytat z posta dotyczącego zadania pierwszego. Czytaj uważnie odpowiedzi.
  Przed pierwszym wczytywaniem imienia masz czyszczenie pustego strumienia, więc metoda cin.ignore() (a strumień jest pusty) czeka na znak nowego wiersza.
P-141210
Matis28
Temat założony przez niniejszego użytkownika
» 2015-12-01 00:30:43
Faktycznie. Mój błąd. Przepraszam za niepotrzebny temat i wielkie dzięki za cierpliwość :)
P-141216
« 1 »
  Strona 1 z 1