[C++ Konsolenanwendung] Dezimalzahlen Converter
-
Hallo alle,
ich bin schon seit stunden dran und finde einfach nicht den Fehler!
Der Kompiler meldet :" exepted declaration before "{" token"
Jedoch finde ich den Fehler nicht... Könnt ihr mir behilflich sein
Hier der Code:
#include <iostream> #include <cmath> #include <cstring> #include <windows.h> using namespace std; int main(); char janein; long double dez, dez2;//dez: Eingabe der Dezimalzahl, dez2: Dezimalzahl, mit der gerechnet wird bool killzero;//Variable zur Beseitigung der Nullen vor der eigentlichen Zahl long double ex, i; //ex: Exponent der Zweierpotenzen, i: Laufvariable bool end=0; //Wird benutzt um das Programm in eine Endlosschleife zu stecken int zero() { for (i=ex; i >= 0; i=i-1) cout << "0"; } int main() { cout << "Dezimalzahlen Converter 1.0" << endl while (end == 0) { cout << "Geben sie eine Dezimalzahl ein: "; cin >> dez; killzero=1; dez2=0; ex = 61; cout << endl << "Dual = "; if (dez == 0) { cout << "0"; goto weiter; } if (dez < 0) { cout << "-"; dez=-dez; } while (ex >=-60) { ex=ex-1; if (ex == -1) { if (killzero == 0) { cout << "."; } else { killzero=0; cout << "0."; } } if (dez2+pow(2,ex) == dez) { cout << "1"; ex=ex-1; zero(); goto weiter; } else if (dez2+pow(2,ex) < dez) { killzero=0; cout << "1"; dez2 = dez2 + pow(2,ex); } else if (dez2+pow(2,ex) > dez) { if (killzero==0) cout << "0"; } } weiter: cout << endl << endl << "Wollen Sie eine weitere Rechnung machen? (J/N)"; cin >> janein; end = 1; switch (janein) // Gross und kleinschreibung wird hier definiert(switch und case) { case 'J': end = 0; break; case 'j': end = 0; break; case 'N': end = 1; break; case 'n': end = 1; } cout << endl; system ("pause"); cout << endl; } } } cin.get(); cin.get(); return 0; }Mit Freundlichen Grüssen
Josepe
-
josepe schrieb:
ich bin schon seit stunden dran und finde einfach nicht den Fehler!
Der Kompiler meldet :" exepted declaration before "{" token"
Mit Sicherheit noch etwas mehr... (Teilweise Zeilenangaben...).
josepe schrieb:
Jedoch finde ich den Fehler nicht... Könnt ihr mir behilflich sein
Ja: Rücke mal deinen Code richtig ein, und tu hinter jede Anweisung ein Semikolon, dann wirst du ihn von alleine finden...
[Tip: cout << "Dezimalzahlen Converter 1.0" << endl <Hier fehlt was> ]Aber ich habe grundsätzlich einige Anmerkungen:
1. Wozu die <windows.h>?
2. Finger weg von goto (Im Regelfall; Nicht verwenden!)
3. Globale Variablen bitte meiden (Im Regelfall: Nicht verwenden!).
4. Bitte zum Formatieren die cpp, nicht die code-Tags verwenden
5. Variablen erst deklarieren wenn man sie benötigt
6. Führende Nullen kann man auch mit io-Manipulatoren ausgeben
7. "Thinking in C++" oder "C++ Primer" wären ein besserer Einstieg...
8. Der Sinn deines Programmes erschließt sich mir auf Anhieb nicht...cu André
-
und hieran fällt dir nichts auf?
int main();das muß natürlich so aussehen
int main() {
-
Braunstein schrieb:
und hieran fällt dir nichts auf?
int main();das muß natürlich so aussehen
int main() {Vorwärtsdeklaration (Warum auch immer), weiter unten ist sie definiert...
-
Ok, das hatte ich wohl übersehen. An sowas wie eine Vorwärtsdeklaration der main hatte ich eben nicht gedacht.

-
Braunstein schrieb:
Ok, das hatte ich wohl übersehen. An sowas wie eine Vorwärtsdeklaration der main hatte ich eben nicht gedacht.

Hätte ich wahrscheinlich auch übersehen. Aber das ist bei dieser grauenartigen Einrückung ja nicht gerade ein Wunder..