Rozdział 17 - Funkcje pierwsze starcie.
Ostatnio zmodyfikowano 2013-01-27 15:49
Maniek Temat założony przez niniejszego użytkownika |
» 2013-01-27 10:05:55 Już to zrobiłem tylko teraz mam taki problem, że po wyświetleniu liczby, zostaje wyświetlona inna. Oto kod : #include <string> #include <iostream> #include <conio.h>
int wczytajLiczbe() { std::string liczba; std::cin >> liczba; for( unsigned i = 0; i <= liczba.length() - 1; ++i ) { if( liczba[ i ] > 57 or liczba[ i ] < 48 ) { std::cout << "Mozesz wpisywac tylko cyfry :)" << std::endl; std::cin >> liczba; } } std::cout << "Brawo" << std::endl; getch(); int liczba2; liczba = liczba2; return liczba2; }
int main() { std::cout << "Podaj liczbe : "; int liczba = wczytajLiczbe(); std::cout << "Podales liczbe : " << liczba << std::endl; return 0; }
Tutaj mam jeszcze zrobiony program z użyciem std::cin.good() ale też źle pokazuje liczbę. #include <iostream> #include <conio.h>
int wczytajLiczbe() { int liczba; std::cin >> liczba; int udalo = std::cin.good(); std::cout << udalo << std::endl; std::cin.clear(); std::cin.sync(); while( udalo == 0 ) { std::cin >> liczba; } return liczba; }
int main() { std::cout << "Podaj liczbe : "; int liczba2 = wczytajLiczbe(); std::cout << "Podales liczbe : " << liczba2 << std::endl; getch(); return 0; }
|
|
Maniek Temat założony przez niniejszego użytkownika |
» 2013-01-27 14:55:02 @odświeżam Ps. Już zrobiłem :). Oto poprawiony kod : #include <iostream> #include <conio.h>
int wczytajLiczbe() { int udalo; int liczba; do { std::cin >> liczba; udalo = std::cin.good(); std::cout << udalo << std::endl; std::cin.clear(); std::cin.sync(); } while( udalo == 0 ); return liczba; }
int main() { std::cout << "Podaj liczbe : "; int liczba2 = wczytajLiczbe(); std::cout << "Podales liczbe : " << liczba2 << std::endl; getch(); return 0; }
|
|
usmiech |
Rozdzial 9 » 2013-01-27 15:16:33 Staram sie zrozumiec kurs... Cos nie tak z przykladem Po podaniu przez uzytkownika zamiast liczby calkowitej / np 12/ liczby rzeczywistej / np 12.3/ podany kod przyjmuje ze spokojem ta liczbe ... Traktuje ja jako dwie liczby... 12 i 0.3..... chyba cus jest nie tak :) #include <iostream> int main() { int a; float b; std::cout << "Podaj liczbe calkowita: "; std::cin >> a; std::cout << "Czy udalo sie wczytac? " << std::cin.good() << std::endl; std::cout << "Czy cos nawalilo? " << std::cin.fail() << std::endl; std::cout << "Podaj liczbe rzeczywista: "; std::cin >> b; std::cout << "Czy udalo sie wczytac? " << std::cin.good() << std::endl; std::cout << "Czy cos nawalilo? " << std::cin.fail() << std::endl; std::cout << "Liczba a = " << a << std::endl; std::cout << "Liczba b = " << b << std::endl; return 0; } |
|
Maniek Temat założony przez niniejszego użytkownika |
» 2013-01-27 15:49:54 Po pierwsze zrób oddzielny temat. A tak poza tym to program u mnie dobrze działa. Oto dowód. Podaj liczbe calkowita: 12 Czy udalo sie wczytac? 1 Czy cos nawalilo? 0 Podaj liczbe rzeczywista: 12.3 Czy udalo sie wczytac? 1 Czy cos nawalilo? 0 Liczba a = 12 Liczba b = 12.3
Process returned 0 (0x0) execution time : 10.797 s Press any key to continue.
|
|
1 « 2 » |