[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..


Anmelden zum Antworten