Kalkulator - problem z kompilacją (kompilator wykrył blędy)
Ostatnio zmodyfikowano 2012-06-20 16:33
Berux Temat założony przez niniejszego użytkownika |
Kalkulator - problem z kompilacją (kompilator wykrył blędy) » 2012-06-20 14:06:39 Zacząłem pisać kalkulator. Ledwo napisałem funkcję 'dodawanie'. skompilowałem i błąd. #include <iostream> #include <cstdlib> #include <math.h>
using namespace std;
void dodawanie() { float czynnik1, czynnik2; do { cout << "Podaj pierwszy czynnik: "; cin.clear(); cin.sync(); cin >> czynnik1; cout << "Podaj drugi czynnik: "; cin.clear(); cin.sync(); cin >> czynnik2; if( cin.good == false ) { cout << "Nie podales liczby!" << endl << endl; } if( czynnik1 != 0 && !( cin.good == false ) || czynnik1 == 0 && !( cin.good == false ) || czynnik2 != 0 && !( cin.good == false ) || czynnik2 == 0 && !( cin.good == false ) ) { cout << czynnik1 << " + " << czynnik2 << " = " << czynnik1 + czynnik2 << endl << endl; } } while( cin.good == false ); }
int main() { dodawanie(); return 0; }
Bląd: Compiling: C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp: In function 'void dodawanie()': C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:24: error: invalid use of member (did you forget the '&' ?) C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:29: error: invalid use of member (did you forget the '&' ?) C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:29: error: invalid use of member (did you forget the '&' ?) C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:29: error: invalid use of member (did you forget the '&' ?) C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:29: error: invalid use of member (did you forget the '&' ?) C:\Users\Admin\Desktop\Pictures\Desktop\Kalkulator 0.1\Kalkulator.cpp:34: error: invalid use of member (did you forget the '&' ?) Process terminated with status 1 (0 minutes, 0 seconds) 6 errors, 0 warnings
Proszę o pomoc. |
|
Vallher |
» 2012-06-20 14:12:56 Nie cin.good, a cin.good(). |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-06-20 14:15:21 Dzięki, nie zauważyłem. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-06-20 14:59:19 mam jeszcze jeden problem z kalkulatorem gdy po wpisaniu najpierw np.s, to pisze że to nie liczba ale do s przypisuje 0 i robi dzialanie z zerem, a gdy dwa razy wpisze się np.s, to nic nie wypisuje tylko od nowa zaczyna program kod: #include <iostream> #include <cstdlib> #include <math.h>
using namespace std;
void dodawanie() { float czynnik1, czynnik2; do { cout << "Podaj pierwszy czynnik: "; cin.clear(); cin.sync(); cin >> czynnik1; cout << "Podaj drugi czynnik: "; cin.clear(); cin.sync(); cin >> czynnik2; if( czynnik1 == cin.good() == false || czynnik2 == cin.good() == false || czynnik1 == cin.good() == false && czynnik2 == cin.good() == false ) { cout << "Nie podales liczby!" << endl << endl; } if( czynnik1 != 0 && !( cin.good() == false ) || czynnik1 == 0 && !( cin.good() == false ) || czynnik2 != 0 && !( cin.good() == false ) || czynnik2 == 0 && !( cin.good() == false ) ) { cout << czynnik1 << " + " << czynnik2 << " = " << czynnik1 + czynnik2 << endl << endl; } } while( cin.good() == false ); } Proszę o pomoc. |
|
Vallher |
» 2012-06-20 15:04:07 Bo te pętle if są bez sensu : D
Albo odrazu po wprowadzeniu zmiennej sprawdzaj czy dobrze to zrobiłeś, a jak chcesz sprawdzać przed wykonaniem działania to musisz utworzyć dodatkową zmienna bool, która będzie pamiętać czy 1 liczba tez była dobrze wczytana. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-06-20 15:26:30 A do zmiennej bool to jak to zapisać? |
|
Vallher |
» 2012-06-20 15:32:06 no to tworzysz 2 zmienne bool a, b; a później w programie: cin.clear(); cin.sync(); cin >> czynnik1; a = cin.good();
cout << "Podaj drugi czynnik: "; cin.clear(); cin.sync(); cin >> czynnik2; b = cin.good();
i warunek pętli ( a && b ) zapewnia, że obie zmienne są poprawnie wczytane. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-06-20 15:41:33 Dobra, tylko jak mam napisać w tym kodzie: if( czynnik1 != 0 && !( cin.good() == false ) || czynnik1 == 0 && !( cin.good() == false ) || czynnik2 != 0 && !( cin.good() == false ) || czynnik2 == 0 && !( cin.good() == false ) ) { cout << czynnik1 << " + " << czynnik2 << " = " << czynnik1 + czynnik2 << endl << endl; } żeby nic nie obliczało jak a lub b lub obie zmienne będą równe false? |
|
« 1 » 2 |