math.h einbinden



  • Servus!

    Wahrscheinlich bin ich zu blöd....
    Nein, im Ernst, eigentlich doch eine ganz einfache Sache. Die Bibliothek math.h steht im Standard-Include Verzeichnis der MS VC++ 6.0 - Entwicklungsumgebung. Ich kann beispielsweise die Bibliothek iostream.h einbinden, ohne Probleme.
    Und jetzt kommts: Wenn ich #include <math.h> schreibe, dann meint er: Nein, die Datei kenne ich nicht. Was soll das? (BTW: Es ist nur ein einfaches Win32-Konsolenprogramm, wo ich diese einbinden will.) Eigentlich muss ich doch in den Projekteinstellungen nichts zusätzliches eingeben, ist doch im Standard-Verzeichnis, oder? Hab ich was vergessen?

    MFG 🙄



  • Stehen die Include-Pfade in den Optionen richtig? Btw: math.h ist ANSI C, aber in C++ bindet man einfach nur cmath ein, ohne h.
    EDIT: Tippfehler



  • Ja, die Optionen in den Project-Settings sind richtig. Da habe ich ja zuerst nachgeschaut.
    Und #include <math> findet Microsoft schon überhaupt gar nicht lustig, geht also auch nicht.
    hmm....
    😞



  • Btw: math.h ist ANSI C, aber in C++ bindet man einfach nur math ein, ohne h.

    Quatsch.

    in C++ bindet man <cmath> ein!!!!!!!!



  • ja und dann noch den namespace nicht vergessen!



  • der_held schrieb:

    Btw: math.h ist ANSI C, aber in C++ bindet man einfach nur math ein, ohne h.

    Quatsch.

    in C++ bindet man <cmath> ein!!!!!!!!

    *g* du Held, glaubst du das weiß ich nicht? In dem Fall hat halt mal die entscheidende Taste geklemmt.



  • skywater1 schrieb:

    Ja, die Optionen in den Project-Settings sind richtig. Da habe ich ja zuerst nachgeschaut.
    Und #include <math> findet Microsoft schon überhaupt gar nicht lustig, geht also auch nicht.
    hmm....
    😞

    Also, damit hier kein Missverständnis auftritt...

    #include <cmath>
    
    int main() {
      double a = sqrt(2); // Der MSVC schluckt auch ohne std:: davor
      double b = std::sqrt(2); // besser ist mit
    }
    


  • Sorry.

    double a = sqrt(2); // Der MSVC schluckt auch ohne std:: davor
    

    ältere MSVC schlucken nur ohne 😞



  • der_held schrieb:

    ältere MSVC schlucken nur ohne 😞

    Jo, aber alles was über der 6er Version ist sollte std:: akzeptieren. Bei den alten Versionen konnte man da auch was tricksen. Der Standard verbietet die Version ohne std:: afaik nicht explizit.



  • Verbietet der Standard denn, das eine Funktion diekuhliefumdenteich existiert? Ich glabue dsa bringt nicht viel. Aber ein using namepsace std ist hilfreich, da ich dann unabhängig davon, ob sqrt nun in std existiert oder global sqrt schreiben kann.


Anmelden zum Antworten