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

[Zadanie 15] Pierwsza część. Co robię nie tak. Sprawdzenie czy idea programu dobra?

Ostatnio zmodyfikowano 2012-03-08 20:03
Autor Wiadomość
abcde
Temat założony przez niniejszego użytkownika
[Zadanie 15] Pierwsza część. Co robię nie tak. Sprawdzenie czy idea programu dobra?
» 2012-03-08 18:44:11
Cały czas mam błędy:
In function 'int main()'
error: 'sprawdzanie' was not declared in this scope
i nie wiem już jak je wyeliminować.
Czy wogóle to ma prawo działać, program jest prawidłowy?

Oto kod:
C/C++
#include <iostream>

int main()

{
   
    int liczba;
    do
    {
        std::cout << "Podaj liczbe: ";
        std::cin >> liczba;
        bool sprawdzanie = std::cin.good();
       
        if( sprawdzanie == false )
             std::cout << "Bledny wybor ";
       
        std::cin >> liczba;
        sprawdzanie = std::cin.good();
       
        if( sprawdzanie == true )
             std::cout << "Koniec" << std::endl;
       
    } while( sprawdzanie != false );
   
   
   
    return 0;
}

P-52218
pekfos
» 2012-03-08 18:48:46
zdefiniuj 'sprawdzanie' przed pętlą do-while.
P-52220
jsc
» 2012-03-08 18:49:37
Chyba trzeba zadeklarować sprawdzanie przed pętlą.

Sprawdzenie czy idea programu dobra?
Możesz wytłumaczyć o co chodzi z tym pytaniem?
P-52221
abcde
Temat założony przez niniejszego użytkownika
» 2012-03-08 20:03:45
Poprawiłem i zmodyfikowałem kod, ponieważ różne rzeczy się działy jeszcze.
Teraz program działa, ale gdy wpiszę błędne dane czyli literę to nie wraca ponownie do wyboru liczby tylko kończy pracę

Aktualny kod:
C/C++
#include <iostream>

int main()

{
   
    int liczba;
    bool sprawdzanie = std::cin.good();
    do
    {
        std::cout << "Podaj liczbe: ";
        std::cin >> liczba;
        sprawdzanie = std::cin.good();
       
        if( sprawdzanie == false )
             std::cout << "Bledny wybor ";
       
        std::cout << "Koniec" << std::endl;
       
    } while( sprawdzanie = false );
   
   
   
   
    return 0;
}

Ps.
JSC chodziło mi oto czy dobrze chociaż kombinuje?

Dobra znalazłem już błąd. Wszystko działa jak należy.
Kod który działa.
C/C++
#include <iostream>

int main()

{
   
    int liczba;
    bool sprawdzanie = std::cin.good();
    do
    {
        std::cin.clear();
        std::cin.sync();
        std::cout << "Podaj liczbe: ";
        std::cin >> liczba;
        sprawdzanie = std::cin.good();
       
        if( sprawdzanie == false )
             std::cout << "Bledny wybor " << std::endl;
       
    } while( sprawdzanie == false ); //lub sprawdzanie !=true
   
    std::cout << "Koniec" << std::endl;
   
    return 0;
}
Teraz powinno być ok chyba,m ze jeszcze coś widzicie to mile widziane uwagi.
P-52226
« 1 »
  Strona 1 z 1