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

Zadanie domowe rozdział 15

Ostatnio zmodyfikowano 2020-02-26 22:12
Autor Wiadomość
Dagull
Temat założony przez niniejszego użytkownika
Zadanie domowe rozdział 15
» 2020-02-25 15:47:05
Potrzebuje pomocy przy wykonywaniu pierwszego zadania chciałem wykorzystać funkcje If.....else by ja poćwiczyć ale ostatecznie nie działa tak jak chce

KOD:
C/C++
#include <iostream>
#include <limits>

int main()
{
    int x;
    bool p;
    std::cout << "Podaj liczbe calokowita: "; std::cin >> x;
    p = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
    if( p = 0 )
    {
        std::cout << "Podana liczba " << x << " Jest liczba calkowita.";
        return 0;
    }
    else if( p = 1 )
    {
        do
        {
            std::cout << "To nie jest liczba calkowita prosze wpisac ponownie: "; std::cin >> x;
            p = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
        } while( p = 0 );
       
        std::cout << "Podana liczba " << x << " Jest liczba calkowita.";
       
    }

Chodzi o to że gdy podaje liczbe całkowitą np 3 to program zamiast wyświetlić liczbę tak jak każe mu if to odrazu przeskakuje do else if  i przy ponownym wpisaniu liczby 3 już tego błędu nie ma i wychodzi z pętli oraz wypisuje liczbę dlaczego tak się dzieje ?
P-176285
pekfos
» 2020-02-25 17:33:59
P-176287
Dagull
Temat założony przez niniejszego użytkownika
Jeszcze jeden blad
» 2020-02-26 14:09:25
Jeszcze jeden blad, wczesniej sam znalazlem blad z  tym jednym "=" ale po poprawieniu tego program w pentli nie chce sie zatrzymac by wczytac nowa zawartosc x tylko samodzielnie wpisuje 0
Kod wyglada tak :

  
C/C++
else
{
    do
    {
        std::cout << "\n Blad nie podales liczby calkowitej sprobuj jeszcze raz: "; std::cin >> x;
        p = std::cin.fail();
       
    } while( p == 0 );
   
    std::cout << "\n Podana liczba " << x << " Jest liczba calkowita.";
}
       
P-176291
mizie
» 2020-02-26 15:01:21
C/C++
do {
    // tresc petli
} while( p == 1 );

P-176293
Dagull
Temat założony przez niniejszego użytkownika
» 2020-02-26 16:56:04
Tylko ze pętla działa a jak dam while ( p==1 ) to program utknie w pętli i w kolko będzie wypisywał ze jest błąd i ani razu nie poczeka aż użytkownik poda mu liczbę tylko samodzielnie nad pisze zmienna x i da jej liczbę 0 a ze błędu nie ma czyli p będzie posiadać liczbę 0 pętla będzie wykonywać się w nieskaczonosc, a ja chce zrozumieć dla czego program nie czeka na liczbę od użytkownika tylko samemu nadpisuje ja...
P-176294
pekfos
» 2020-02-26 21:32:56
Gdy strumień jest w stanie błędu, wczytywanie danych kończy się błędem. Musisz dodać clear() i ignore().
P-176295
Dagull
Temat założony przez niniejszego użytkownika
» 2020-02-26 22:12:58
Czyli usuniecie tego z kodu jednak bylo bledne teraz wiem na czym polegal moj blad i dlaczego powinienem po while dać p == 1 dzieki za pomoc :D
P-176296
« 1 »
  Strona 1 z 1