C++ Fehlermeldung?, was bedeutet Sie?

2 Antworten

Zwischen Parameterliste und Beginn des Funktionsblockes darfst du nichts anderes einbauen. Du deklarierst an dieser Stelle aber einfach Variablen (und schließt nicht einmal diese Zeilen mit einem Semikolon ab).

Des Weiteren fehlt die Raute vor der zweiten include-Direktive.

PS.: Sofern du an dieser Stelle:

if(ergebnis1 = 0)

den Wert der Variable eigentlich mit 0 vergleichen wolltest, fehlt ein Gleichheitszeichen.

if(ergebnis1 == 0)

Derzeit setzt du nicht den Vergleichsoperator ein, sondern nimmst eine Zuweisung vor.

PPS.: Hier ist noch die Richtung des Operators falsch herum:

std::cin << Zahl2; // wrong
std::cin >> Zahl2; // correct

iIovemusic 
Beitragsersteller
 16.11.2019, 15:44

Danke. So sollte es richtig sein:

#include <iostream>

#include <string>

#include <thread> //Zeitverzögerung

using namespace std;

int main()

{

int Zahl1;

int Zahl2;

int ergebnis1;

cout << "Modulo" <<endl;

cout<< "Zahl1 eingeben" << endl;

cin>> Zahl1;

cout<<"Zahl2 eingeben"<<endl;

cin>>Zahl2;

ergebnis1 = (Zahl1%Zahl2);

 if(ergebnis1 = 0) cout<< "pppow"<<endl;

 if(ergebnis1 > 0) cout << "pppo" << endl;

 return 0;

}

regex9  16.11.2019, 15:46
@iIovemusic

Die Syntaxfehler scheinen behoben, doch das Problem mit dem Zuordnungs-/Vergleichsoperator besteht da immer noch.

iIovemusic 
Beitragsersteller
 16.11.2019, 15:50
@regex9

Wusste ich voher gar nicht, dass man ein doppeltes Gleichheitszeichen bei einem Vergleich mit Null machen muss. Wurde aber gerade korrigiert.

regex9  16.11.2019, 15:57
@iIovemusic

Bei jedem Vergleich. Andernfalls wird der Variable ergebnis1 der Wert 0 zugeordnet und dann geprüft, ob der Wert der Variable wahr / falsch ist. In diesem Fall würde Letzteres eintreten (denn 0 wird stets als false evaluiert).

iIovemusic 
Beitragsersteller
 16.11.2019, 16:14
@regex9

Danke. Ein Fehler weniger den ich bei meinem nächsten Quellencode machen kann.

Korrekt:

int main()

{

int Zahl1;

int Zahl2;

...

}