Witam, otóż czytając kurs z strony : http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Obsluga-strumienia-wejsciowego/12 doszedłem do metod strumienia cin jakimi są cin.good, cin.fail, cin.sync i cin.clear . Otóż nie mogę sobie jakoś za bardzo przyswoić w którym momencie tego używać, do czego to służy i w ogóle co to robi... Niby coś tam w kursie jest napisane, ale nie jest to dla mnie zrozumiałe zbytnio. Szukałem w googlach ale tamte wypowiedzi też mi nie wystarczały. Proszę aby ktoś mi wytłumaczył jak prostemu chłopowi co i jak. Dziękuje.
Właściwie to chciałem się dowiedzieć czegoś więcej o tych metodach żeby zrobić zadanie z kursu o następującej treści :
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:
- Podaj liczbę
- Jeżeli błąd, wróć do kroku 1.
- Wypisz liczbę, która została podana.
I za cholerę nie mogłem go zrobić przez niemal 3h, ale w końcu się udało. Mimo iż nadal nie mogę zrozumieć o co tu chodzi napisałem to...
#include <iostream>
using namespace std;
int main()
{
float liczba;
bool prawda;
if (prawda = true)
{
do
{
cout << "Podaj liczbe: ";
cin >> liczba;
prawda = cin.good();
cin.clear();
cin.sync();
}while(prawda == 0 );
cout << "Podales : " << liczba;
}
return 0;
}
Ja to rozumiem tak : if ( prawda = true ) - w nawiasie warunek więc, żeby wykonać blok kodu bool prawda musi miec wartość true, ale dlaczego program się wykonuje skoro ja wcześniej nie pisałem że bool prawda = true? A i co oznacza zapis " prawda = cin.good(); "?