Praca domowa do lekcji 15 - kalkulator
Ostatnio zmodyfikowano 2015-08-15 16:14
kaczan Temat założony przez niniejszego użytkownika |
» 2015-08-14 22:21:48 Korzystam z Code::Bloks pod linuksem (Ubuntu 15.04). Kompilator GNU GCC Compiler. Co śmiesznie robiąc zadania do kolejnych lekcji stworzyłem funkcję: int wczytajLiczbe() { int a; do { std::cin.clear(); std::cin.ignore( 1000, '\n' ); std::cin >> a; } while( !std::cin.good() ); return a; }
Która działa poprawnie. Nie rozumiem dlaczego analogiczny fragment kodu nie działa poprawnie. EDIT: W dniu dzisiejszym pojawił się kolejny problem z wczytywaniem. Wczytuje liczbę dopiero za 3 razem. Pierwsze 2 razy ignoruje. Jeśli wczytuje znak inny niż liczbę, to oczywiście pętla działa. Czy ja popełniam błąd, czy błędny jest kompilator? Jeśli kompilator, co zrobić aby działał poprawnie? Przetestuj ten program.
#include <conio.h> int toInt( char * s ) { int n, i; i = n = 0; while( s[ i ] >= '0' && s[ i ] <= '9' ) { n = n * 10 + s[ i++ ] - '0'; } return n; } int main() { char arr[] = { "Wpisz a aby zakonczyc program. Podaj dwie cyfry, a ja wyswietle ci sume. Nawet jestli wpiszesz durnote to sie nie zawiesze ;)" } for( int i = 0; i < strlen( & arr ); i++ ) putch( arr[ i ] ); char c = getch(); char c2 = getch(); if( c == 'a' || c2 == 'a' ) else { if( c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9' || c == '0' ) { if( c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9' || c == '0' ) { putch( toInt( & c ) + toInt( & c2 ); } else { } } else { } } } Powinno dzialac |
Kompilator zwraca błąd fata error conio.h nie ma takiego pliku lub katalogu |
|
carlosmay |
» 2015-08-15 15:39:13 BadBullPL napisał: Powinno działać. Nie skompiluje się. |
i tak jest. Brakuje kilku elementów do działania: średników, instrukcji w ifie, nawiasów. |
|
Monika90 |
» 2015-08-15 16:14:39 Co śmiesznie robiąc zadania do kolejnych lekcji stworzyłem funkcję: |
Porównaj sobie z tym #include <iostream> #include <limits> using namespace std;
int podaj() { int liczba; cout << "Podaj liczbe: "; while( !( cin >> liczba ) ) { cin.clear(); cin.ignore( numeric_limits < streamsize >::max(), '\n' ); cout << "To nie liczba, podaj liczbe: "; } return liczba; }
int main() { int liczba = podaj(); cout << "Podano " << liczba << endl; }
|
|
1 2 « 3 » |