Frage von ilo324, 24

Fehler C2447 beheben C++ bei einer Vergleichsfunktion?

Die Aufgabe ist eigentlich simpel ich soll in c++ ein kleines Programm schreiben es soll zwei Zeichen Vergleichen , ich habe jetzt einfach mal Zahlen genommen. Jedes mal bekomme ich den Fehler C2447 ausgegeben.

Ich nutze Microsoft Visual Express

Zeile 1 : : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?

Mein Quellcode :

#include<cstdlib>

#include<iostream>

using namespace std;

void main () ;

{ double a,b ;

cin>>a ; cin>>b ;

if { a=b ; cout<< " a ist gleich b " ;

else

cout<< " a entspricht nicht b " ;

}

system("pause");

return 0;

}

Antwort
von Axiallager, 24

Mach mal das Semikolon hinter dem main() weg.

Kommentar von ilo324 ,

das hab ich schon so oft gelesen und gemacht bringt nix

Kommentar von ilo324 ,

wenn ich das mache bekomme ich drei Fehler : C2061(Syntaxfehler für a) / C2143 (; fehlt vor klammer) / C2181 (ungültiges else ohne if)

Kommentar von Axiallager ,

Danm hast du noch einen anderen Fehler drin, aber hinter das main() gehört kein Semikolon, wenn dein Code funktionieren soll. Zudem wird beim Vergleich mit doppeltem Fragezeichen (==) gearbeitet.

Kommentar von Axiallager ,

Ich sehe grade: Der Vergleich beim if gehört in runde Klammern. Und die müssen vor den eckigen stehen. Etwa so: if (a==b) { Anweisung; }

Kommentar von ilo324 ,

Hab ich jetzt alles gemacht jetzt bekomme ich : error C2143: Syntaxfehler: Es fehlt ';' vor 'else'

Kommentar von Axiallager ,

Ja, weil der Block des if geschlossen werden muss, bevor das else kommt. Etwa so: if (a==b) { Anweisung; } else { Anweisung; }

Kommentar von ilo324 ,

Dankeeeeeeeeeeeeeeee !!!! Du hast 2 Stunden googlen und probieren gerade abgeschlossen !!!! Danke !

Kommentar von Axiallager ,

Gerne ;) Einen schönen Abend noch

Kommentar von spaghetticode ,

Ist nicht böse gemeint, aber: aus welcher Quelle lernst du, bitte? Man kann ja Anfängerfehler machen, man kann auch mal auf dem Schlauch stehen, was ein vergessenes Semikolon angeht - aber das hier? Und "zwei Stunden googlen", wo ein sorgfältiger Blick ins Lehrbuch alle Fragen beantworten sollte?

Antwort
von ItsJustMe38, 17

1. Die includes dürfen da nicht so Leerstehen, entweder ein Header file dahinter oder ganz weg
(bin mir sicher, du brauchst welche)

2. Kein Semikolon nach dem main()

3. Eine gleich Bedingung wir mit "a==b" gesetzt, nur "a=b" setzt B in A hinein

4. Der syntax für eine if Bedingung ist if(Bedingungen) {Befehl ;} else {whatever}
Also: if(a==b){ cout<<"a ist gleich b"; } else {cout<<"a entspricht nicht b";}

Keine passende Antwort gefunden?

Fragen Sie die Community