dev-c++ kompelier problem



  • so vorweg ich bin noch recht wenig ahnung...
    ich hab folgendes problem:
    in der schule in anwendungsentwicklung haben wa nen taschenrechner geschrieben der auch ohne probleme läuft. ok auf ubs-stick gepackt und zuhause dran weitergebastelt dann wollte ich das ganze ding kompeliren aber es ging nicht dev-c++ sagt mir dann das in iostream.h etwas falsch is was ja net sein kann.
    (borland 5 sagt nur linker fataler fehler)
    dann hab ich das ganze mal auf anderen rechner getestet und dann ging es ohne probleme. es lässt sich unter linuk winnt win2k ohne probs kompeliren nur auf meinem winxp nicht woran kann das liegen oder wie bekomm ich das zum laufen?

    mfg

    Selgald



  • Also da brauchts schon noch ein bischen mehr Infos, um aus dem Problem schlau zu werden. Poste z.B. mal die Fehlermeldungen, die Dein Compiler auswirft! Und je nachdem wäre ein bischen Programm-Code auch nicht schlecht (wenn's nicht allzu lang ist...)



  • iostream.h ist veraltet.
    <iostream> verwenden.
    teste mal das hier:

    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
        //
        getch();
    }
    


  • // rechner.cpp
    // Programm zur Durchfuehrung
    // einfacher Berechnungen
    // D.Schroeder

    #include <iostream.h>
    #include <math.h>

    double zahl_eingeben()
    {
    double zahl;
    cin>>zahl;
    return zahl;
    }

    int main()

    //Variablen-Deklaration
    char zeichen;
    double eingabewert=0;

    //Ausgabe Kopfzeile
    cout<<"Operationen: = + - * / q w l b \n";
    cout<<"-------------------------------\n";
    cout<<" Eingabe: ";
    //Eingabe der ersten Zahl
    cin>>eingabewert;

    while (cin.get(zeichen)) //Zeichen einlesen
    {
    switch (zeichen) //Menue-Auswahl
    {
    case '+': //Addition
    {
    eingabewert=eingabewert+zahl_eingeben();
    break;
    }
    case '-': //Subtraktion
    {
    eingabewert=eingabewert-zahl_eingeben();
    break;
    }
    case '': //Multiplikation
    {
    eingabewert=eingabewert
    zahl_eingeben();
    break;
    }
    case '/': //Division

    if (zahl_eingeben() == 0)
    {
    eingabewert=eingabewert/zahl_eingeben();
    break;
    }
    else
    {
    cout<<"Divisor darf nicht 0 sein";
    }
    case 'p': //Potenzieren
    {
    eingabewert=pow(eingabewert,zahl_eingeben());
    break;
    }
    case 'q': //Quadrieren
    {
    eingabewert=eingabewert*eingabewert;
    break;
    }
    case 'w': //Wurzel ziehen
    {
    eingabewert=sqrt(eingabewert);
    break;
    }
    case '=': //Ergebnis
    {
    cout<<" Ergebnis: "<<eingabewert;
    break;
    }
    case 'l': //Speicher loeschen
    {
    cout<<" Eingabe: ";
    eingabewert=zahl_eingeben();
    break;
    }
    case 'b': //Programm beenden
    {
    return;
    }
    }
    }
    }

    das is der code ja mein erster 🙂

    2 E:\Dev-Cpp\include\c++\backward\backward_warning.h:32
    #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.

    das ist mal der hauptfehler (denk ich) ^^

    #include "backward_warning.h" << zeile 31 von der iostream.h wo der fehler ansagt



  • ... schrieb:

    iostream.h ist veraltet.
    <iostream> verwenden.
    teste mal das hier:

    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
        //
        getch();
    }
    

    Selgald schrieb:

    2 E:\Dev-Cpp\include\c++\backward\backward_warning.h:32
    #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.

    das ist mal der hauptfehler (denk ich) ^^

    jopp der linker fehler kommt daher, das die iostream.h veraltet ist.
    mach das wie hier nochmal beschrieben, und du darfst nicht das "using namespace std" vergessen, ansonsten wird der compiler meckern.

    greetings



  • gesagt getan nu sagt mir borland: Der debbuger-kernel bordbk51.dll fehlt oder is nicht regestriert.
    und dev-c++ meckert jetzt:
    E:\c\c1\rechner.cpp
    [Warning] In function `int main()':

    27 E:\c\c1\rechner.cpp
    redefinition of `int main()'

    12 E:\c\c1\rechner.cpp
    `int main()' previously defined here

    27 E:\c\c1\rechner.cpp
    parse error before `char'

    32 E:\c\c1\rechner.cpp
    syntax error before `<<' token

    78 E:\c\c1\rechner.cpp
    ISO C++ forbids declaration of `eingabewert' with no

    28 E:\c\c1\rechner.cpp
    previous declaration as `double eingabewert'

    und noch paar andere sachen ich blick da jetzt garnet mehr durch 🙂



  • // rechner.cpp 
    // Programm zur Durchfuehrung 
    // einfacher Berechnungen 
    // D.Schroeder 
    
    #include <iostream> /*du hattest hier vorher "#include <iostream.h>" stehen 
                          gehabt. diese datei ist veraltet und deswegen gabs 
                          Linkerfehler*/
    #include <math.h> 
    
    using namespace std; /*funktionen wie cout/cin liegen im namensbereich "std"
                           welcher in der "neuen" <iostream> definiert wurde.
                           siehe auch ein stück weiter unten.*/
    
    double zahl_eingeben() 
    { 
        double zahl; 
        cin>>zahl;       /*nimmst du das "using namespace" wieder raus wird
                           Compiler hier meckern, das er "cin" nich kennt. 
                           Schreibst du allerdings std::cin >> zahl; wird es wieder
                           erkannt.*/
    
        return zahl; 
    } 
    
    int main()
    {                   /*die öffnende klammer war auch nicht vorhanden.
                          deswegen bekammst du "27 E:\c\c1\rechner.cpp"
                                               "parse error before `char'"
                          diese fehlermeldung*/
    
        //Variablen-Deklaration 
        char zeichen; 
        double eingabewert=0; 
    
        //Ausgabe Kopfzeile 
        cout<<"Operationen: = + - * / q w l b \n"; 
        cout<<"-------------------------------\n"; 
        cout<<" Eingabe: "; 
        //Eingabe der ersten Zahl 
        cin>>eingabewert; 
    
        while (cin.get(zeichen)) //Zeichen einlesen 
        { 
            switch (zeichen) //Menue-Auswahl 
            { 
                    case '+': //Addition 
                    { 
                                    eingabewert=eingabewert+zahl_eingeben(); 
                                    break; 
                    } 
                    case '-': //Subtraktion 
                    { 
                                    eingabewert=eingabewert-zahl_eingeben(); 
                                    break; 
                    } 
                    case '*': //Multiplikation 
                    { 
                                    eingabewert=eingabewert*zahl_eingeben(); 
                                    break; 
                    } 
                    case '/': //Division 
                                    if (zahl_eingeben() == 0) 
                                    {
                                         eingabewert=eingabewert/zahl_eingeben(); 
                                         break;
                                    } else 
                                    { 
                                         cout<<"Divisor darf nicht 0 sein"; 
                                         break;
                                    } 
                    case 'p': //Potenzieren 
                    { 
                                    eingabewert=pow(eingabewert,zahl_eingeben()); 
                                    break; 
                    } 
                    case 'q': //Quadrieren 
                    { 
                                    eingabewert=eingabewert*eingabewert; 
                                    break; 
                                    } 
                    case 'w': //Wurzel ziehen 
                    { 
                                    eingabewert=sqrt(eingabewert); 
                                    break; 
                    } 
                    case '=': //Ergebnis 
                    { 
                                    cout<<" Ergebnis: "<<eingabewert; 
                                    break; 
                    } 
                    case 'l': //Speicher loeschen 
                    { 
                                    cout<<" Eingabe: "; 
                                    eingabewert=zahl_eingeben(); 
                                    break; 
                    } 
                    case 'b': //Programm beenden 
                    { 
                         return 0; 
                    } 
            } 
        } 
    }
    

    so ich hab deinen code mal genommen und entsprechend korrigiert, die änderungen habe ich kommentiert.

    27 E:\c\c1\rechner.cpp
    redefinition of `int main()'

    12 E:\c\c1\rechner.cpp
    `int main()' previously defined here

    was diese beiden fehler betrifft denke ich dass du zweimal die funktion "int main" definiert hast, sprich zweimal "int main [..]" geschrieben hast.

    so sollte ich im allgemeinen bockmist erzählt haben schlagt mich peitscht mich bannt mich oder lacht mich einfach aus.

    /edit: ach ja is wieder mit DevCpp gemacht, was der Borland will ka 😉



  • hui es klappt jetzt danke 🙂
    auf bald (wenn ich wieder tausend fragen hab) 🙂



  • auf bald (wenn ich wieder tausend fragen hab)

    😞


Anmelden zum Antworten