Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Prosba o pomoc


Rekomendowane odpowiedzi

Opublikowano
Krotko mowiac po zrozumieniu petli mialem za zadanie napisac program:

 

Napisz program, który wczyta liczbę, a następnie wypisze ją na ekranie. Zabezpiecz przed wczytaniem nieprawidłowej liczby. Wykorzystaj do tego celu wiedzę z jednego z poprzednich rozdziałów. Sposób działania programu:
1. Podaj liczbę
2. Jeżeli błąd, wróć do kroku 1.
3. Wypisz liczbę, która została podana.

 

 

 

 

 

 

 

 

 

 

 

#include <iostream>
int main()
{
    int a;
    do
    {
        std::cout << "Podaj liczbe: ";
        std::cin >> a;
        std::cout << "Czy zostala podana liczba? " << std::cin.good() << std::endl;
        std::cin.clear();
        std::cin.sync();
    }while ( a < 0);


    std::cout << "Podales liczbe: " << a << std::endl;
    return 0;


}
 

 

Problem w tym, ze nie rozumiem jednego zdania: Zabezpiecz przed wczytaniem nieprawidłowej liczby.

Czy chodzi o zabezpieczenie przed wpisaniem znaku (a-z)? Jezeli tak to jakiej funkcji do tego uzyc?

(jak narazie jest zabezpieczone przed wpisaniem liczby mniejsze od zera)

 

Nie bijcie, w C++ siedze drugi dzien.

 

Opublikowano

Przeczytaj kurs jeszcze raz.

Możesz użyć std::cin.good() lub std::cin.fail()

Pierwsze powinno zwrócić 1, a drugie 0, jeżeli wprowadzono poprawne dane.

while ( a < 0); 

Tutaj sprawdź czy wystąpił błąd. Liczba mniejsza od 0 nadal jest liczbą.

obraz24.png


Opublikowano

, kompilator nie ma problemow z kodem

 

hmm.. ok, rozumiem, postaram sie cos z tym zrobic

@edit

 


Przeczytaj kurs jeszcze raz.

Możesz użyć std::cin.good() lub std::cin.fail()

Pierwsze powinno zwrócić 1, a drugie 0, jeżeli wprowadzono poprawne dane.

while ( a < 0);

Tutaj sprawdź czy wystąpił błąd. Liczba mniejsza od 0 nadal jest liczbą.

while ( !a < 0); <- poprawna wersja|| wyswietla teraz liczby ujemne jako liczby jednak nie rozwiazalo to mojego problemu, gdyz po wpisaniu w programie litery zamiast liczby, std::cin.good(), owszem, zwraca poprawna wartosc lecz program wyswietla losowa liczbe a powinien zrobic petle:
jest jeszcze taka mozliwosc ze po prostu autorowi kursu nie chodzilo o to o co mi chodzi a informacje o tym sa zawarte w dalszej czesci kursu, lecz wydaje mi sie ona malo prawdopodobna

 

do

{
std::cout << "Podaj liczbe: ";
std::cin >> a;
}while ( !a < 0);

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...