Welche Bibliothek soll ich benutzen?



  • Hi,

    aus C kenne ich die bekannten stdio.h, conio,h, math.h und time.h, doch in C++
    soweit ich weiß gibt es drei verschiedene Arten von Biliotheken.

    1. C Bibliotheken(beginnen mit einem vorangestelltem c, cmath,ctime, usw.)
    2. C++ Bibliotheken welche sich nochmals unterscheiden lassen in
    a) iostream
    b) iostream.h

    Meine Frage, welche Biblioteken sollte man benutzen, höchstwahrscheinlich die von
    C++, aber sind der Include von iostream und iostream.h identisch oder wird da
    etwas anderes includiert?

    Und kann mir jemand mal für folgende C-Bibliotheken die C++ Alternative sagen:

    stdio.h und conio.h



  • <iostream.h> ist nicht Teil von C++. Vor der Standardisierung von C++ gab es viele Compiler, die diesen Header anboten, aber im C++-Standard gibt es nur <iostream>.

    Was C-Standard-Header angeht, so sind diese in C++ noch enthalten, aber als veraltet markiert. Es ist besser, die C++-Wrapper zu verwenden, etwa <cstdio> statt <stdio.h>, <cstdlib> statt <cstdlib> etc, und es ist noch besser, Alternativen aus der eigentlichen C++-Standardbibliothek zu benutzen, wenn man keine guten Gründe hat, auf C auszuweichen. Der Unterschied zwischen <cstdio> und <stdio.h> ist im Wesentlichen, dass <cstdio> alles in den Namensraum std packt (wie alle anderen C++-Standardheader).

    <conio.h> ist weder Teil von C++ noch von C; es handelt sich um einen alten DOS-Header. Er wurde nie standardisiert, also schweigt sich der Standard über ihn aus.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum C (C89 und C99) in das Forum C++ (auch C++0x und C++11) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Die cXXX sind übrigens keine reinen Wrapper sondern enthalten teilweise auch ganz andere Funktionen. In den C++-Headern sind beispielsweise viele Funktionen überladen, was in den C-Kompatibilitätsheadern logischerweise nicht der Fall sein kann.


Anmelden zum Antworten