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

Zadanie domowe rozdział 3.4 cin.good()

Ostatnio zmodyfikowano 2016-03-29 16:23
Autor Wiadomość
pekan
Temat założony przez niniejszego użytkownika
Zadanie domowe rozdział 3.4 cin.good()
» 2016-03-29 15:00:06
Napisałem program program, który przyjmuje imię nazwisko i wiek a następnie je wypisuje. W przypadku podania nieprawidłowych wartości zmiennych program ma prosić o inną wartość jednak std::cin.good() zawsze przyjmuje wartość 1.Chciałem więc prosić o pomoc.
C/C++
#include <iostream>
#include <string>
void wczytajosobe( std::string t[], std::string t2[], int t3[], int roz )
{
    for( int i = 0; i < roz; i++ )
    {
        do
        {
            std::cout << "Podaj imie" << std::endl;
            std::cin.clear();
            std::cin.sync();
            std::cin >> t[ i ];
        } while( std::cin.good() == 0 );
       
        do
        {
            std::cout << "Podaj nazwisko" << std::endl;
            std::cin.clear();
            std::cin.sync();
            std::cin >> t2[ i ];
        } while( std::cin.good() == 0 );
       
        do
        {
            std::cout << "Podaj wiek" << std::endl;
            std::cin.clear();
            std::cin.sync();
            std::cin >> t3[ i ];
        } while( std::cin.good() == 0 );
       
    }
}
void wypiszosobe( std::string t[], std::string t2[], int t3[], int roz )
{
    int i = 0;
    do
    {
        std::cout << "Imie  " << t[ i ] << "  Nazwisko  " << t2[ i ] << "  Wiek  " << t3[ i ] << std::endl;
        i++;
    } while( i < roz );
   
}
int main()
{
    std::string imie[ 2 ];
    std::string nazwisko[ 2 ];
    int wiek[ 2 ];
    int roz = 2;
    wczytajosobe( imie, nazwisko, wiek, roz );
    wypiszosobe( imie, nazwisko, wiek, roz );
    return 0;
}
P-146723
carlosmay
» 2016-03-29 16:00:04
Dla wczytywania łańcucha nie ma sensu sprawdzanie, bo std::string przechowuje
znaki (litery, cyfry i inne znaki). Co by nie wpisać to się zapisze.
Sprawdzanie dla typów liczbowych tak.
P-146736
pekan
Temat założony przez niniejszego użytkownika
» 2016-03-29 16:23:28
OK, dzięki.
P-146739
« 1 »
  Strona 1 z 1