[Lekcja 17] Funkcje - pierwsze starcie
Ostatnio zmodyfikowano 2013-01-07 15:46
elitehugo Temat założony przez niniejszego użytkownika |
[Lekcja 17] Funkcje - pierwsze starcie » 2013-01-07 06:20:38 Mam pewien problem, Nie mogę tu zastosować pętli do...while. Oraz mam problem z czyszczeniem bufora? czyli ze wpisując znaki alfabetyczne przed cyfra, bufor ich nie czyści. : P Jakieś Propozycje i pomoc początkującemu? #Edit Teraz zmienilem znak na porównania, lecz dalej nie działa jak chciałem. : ( Czy powodem może być to że pętla znajduje się w funkcji ? Zrobiłem pętle poza funkcja i działa, zapętla, ale dalej nie czyści liter z przodu. Przykład dla zobrazowania dla zwrokowców. Tam gdzie liczba to co podaje. 123 asd -Filtruje 123 123asd -Filtruje 123 123 -Filtruje 123 asd123 -Nie Filtruje 2147328000 asd -Nie Filtruje 2147328000 I tu mam pytanie, istnieje coś co blokuje wpisywanie liter ? #include <iostream> int wczytajLiczbe() { using namespace std; int a; cin >> a; cin.clear(); cin.sync(); return a; }
int main() { int a; using namespace std; bool adone = cin.good(); do { cout << "Podaj liczbe: " << endl; int a = wczytajLiczbe(); cout << "Podales liczbe " << a << endl; } while( adone != 0 ); cout << "Koniec" << endl; return 0; }
|
|
RazzorFlame |
» 2013-01-07 07:36:34 Znak przypisywania wartości '=' jest inny od porównywania '==' w warunkach się porównuje! |
|
RazzorFlame |
» 2013-01-07 15:46:06 2 uwagi. 1 - Czy wiesz że using namespace std; wystarczy dać zaraz po dołączeniu nagłówków "#include..." 2. funkcja wczytajLiczbe powinna wygladac mniej-wiecej tak: int wczytajLiczbe() { int a; bool czyPrawidlowo = false; while( czyPrawidlowo == false ) { cin >> a; czyPrawidlowo = cin.good(); cin.clear(); cin.sync(); } return a; }
|
|
« 1 » |