Fehler mit dem Operator
-
Hallo, ich bin gerade dabei, C++ zu lernen und komme an einer Stelle nicht weiter. Ich lerne mit dem Buch C++ von A bis Z.
Folgendes Beispiel:#include <iostream> using namespace std; int main(void) { int var1, var2; cout << "Bitte geben Sie eine Zahl ein: "; if ((cin >> var1) == false) { cerr << "Fehler bei der Eingabe!\n"; exit(1); } cout << "Bitte den Teiler eingeben: "; if ((cin >> var2) == false) { cerr << "Fehler bei der Eingabe!\n"; exit(1); } if (var2 == 0) { cerr << "Teiler darf nicht 0 sein!\n"; exit(1); } cout << "Ergebnis der Division " << var1 << " / " << var2 << " = " << (var1 / var2) << endl; return 0; }
Wenn ich das jetzt genau so eingebe (benutze MS Visual Studio 2015) kommt in der 7. Zeile bei == (das selbe auch in der 12. Zeile) die Fehlermeldung, dass kein == Operator mit dem Operanden übereinstimmt.
Da drunter steht auch:Fehler C2678 Binärer Operator "==": Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ "std::basic_istream<char,std::char_traits<char>>" akzeptiert (oder keine geeignete Konvertierung möglich)
Kann mit da jemand weiter helfen?
-
Benutze den Operator '!' (engl.: "not operator"):
if (!(cin >> var1))
und verwende ein anderes (richtiges) Lehrbuch, s.a. WARNUNG: Bücher von Jürgen Wolf zu C und C++ zum Lernen ungeeignet weil... .
-
1. Du postest im falschen Forum (wie schwer ist es eigentlich zu lesen?!)
2. Verbrenn das Buch, wirf die Asche in einen Fluss. Jürgen Wolf hat einen unfassbar schlechten Ruf, seine Bücher sind fehlerbehaftet, der Code taugt mal absolut gar nicht zum lernen.
3. Wenn du auf korrekte Eingabe prüfen willst.
-
Danke euch beiden, mit dem ! Operator hat es funktioniert.
Das Buch hatte ich damals wegen den vielen positiven Rezensionen bei Amazon gekauft..aber für einen absoluten Programmiereinsteiger ist es wohl doch nicht zu empfehlen. Dann werde ich mir wohl ein anderes Buch besorgen, danke nochmal für die Info.