Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Problem mit iostream.h

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.11.2002
    Beiträge
    61

    Problem mit iostream.h

    Bei mir kommt es bei der iostream.h beim kompilieren zu folgender Warnung:

    In file included from /usr/include/g++/backward/iostream.h:31,
    from testc.cpp:1:
    /usr/include/g++/backward/backward_warning.h:32:2: warning: #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.

    Ich kompiliere mit g++ und mein system ist Suse 8.1

    Das bedeuted doch das meine header datei veraltet ist oder?

  2. #2
    Registrierter Benutzer Avatar von dakjo
    Registriert seit
    08.03.2002
    Beiträge
    90
    Du solltest nicht

    Code:
    #include <iostream.h>
    sondern

    Code:
    #include <iostream>
    benutzten.

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.11.2002
    Beiträge
    61
    Warum das?
    tut das dann auch unter windows?

    da gibts naemlich keine warnung

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.11.2002
    Beiträge
    61
    Auserdem tut das so nicht.Habe es gerade probiert

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.01.2003
    Beiträge
    222
    diese warnung bekommst du bei g++ ab Version 3.x,
    du solltest ab jetzt nur noch <iostream> benutzen, damit stellst du sicher
    dass dein programm auch mit den noch folgenden compiler versionen funktioniert.

    gruss
    Arthur

  6. #6
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    hi,

    wahrscheinlich benutzt du irgend ein M$ produkt, was warnungen ignoriert *duck*.

    ne, im ernst:

    iostream.h ist deprecated(missbilligt) und nach konvention ist die benutzung auch nicht erlaubt. stattdessen macht man
    Code:
     #include <iostream>
    und gibt bei jeder funktion aus iostream den namensbereich mit an ( std::cout z.b. ) oder man sagt dass man den namespace gerne benutzen moechte:

    Code:
    #include <iostream>
    using namespace std;
    gruss,

    tuxipuxi.

  7. #7
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Man kann auch die einzelnen Sachen mit using deklarieren, wenn man sie zu häufig für direktes Voranstellen des Namespacenamens benutzt, aber den Namespace nicht generell öffnen will

    Code:
    using std::cout;
    using std::endl;
    Der <iostream> geht sogar mit VC++6.0, der wirklich alles andere als Standardkompatibel ist.
    Bei <cmath> gehts leider nicht, der ist beim VC++6.0 nicht im Namespace (den Header gibts aber)

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  8. #8
    Registrierter Benutzer
    Registriert seit
    04.12.2002
    Ort
    Erlangen
    Beiträge
    34
    Und wie bekommt man das so installiert, dass es laeuft? Benutze Debian und versuch
    schon die ganze Zeit die verschiedensten Packete die sich nach g++ anhoeren zu
    installieren, kann aber nix mit

    #include <iostream>
    #include <istream>
    #include <fstream>

    bauen. Wie richte ich unter Linux korrekt eine Programmierumgebung ein? Kann
    mir da jemand eine gute Anleitung oder Eckpfeiler geben?

    Bekomme folgenden Fehler wenn ich ein sourcefile mit oben genannten includes
    bauen will

    /usr/include/c++/3.3/bits/concept_check.h:52:
    warning: invalid character in macro parameter name
    /usr/include/c++/3.3/bits/concept_check.h:52:
    badly punctuated parameter list in '#define'

    Sollten nicht die standart includes ohne jede Angabe von Includedirectorys per -I
    gefunden werden?

  9. #9
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    poste mal den code den du versucht hast zu kompilieren.

  10. #10
    Registrierter Benutzer
    Registriert seit
    10.03.2002
    Ort
    Neuenhof
    Beiträge
    23
    Wenn ich <iostream.h> benutze kommt dieselbe Fehlermeldung. Wenn ich jedoch <iostream> benutze, ezigt mir mein IDE (anjuta) mehrere Fehlermeldungen.
    In dem Buch das ich benutze ist es mit <iostream.h> beschrieben.

    Siehe screenshot !
    Was ist Falsch?
    Mein PC :
    PowerMac G4@450 Dual 1.5 GB RAM

    iBook G4 1Ghz
    768MB RAM

  11. #11
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    cout,endl,usw... liegen im namespace std, dh. du mußt um auf diese zugreifen zu können den namespace explizit öffnen (using namespace std; ) oder diese Elemente mit std:: ansprechen.
    Code:
    #include <iostream>
    using namespace std;
    int main() {
        cout << "Hello World" << endl;
    }

  12. #12
    Registrierter Benutzer
    Registriert seit
    10.03.2002
    Ort
    Neuenhof
    Beiträge
    23
    Ok, danke! Hat funktioniert!
    Sieht so aus als wäre mein Buch ziehmlich alt! Muss mir ein neues zulegen!
    Nochmals Danke!
    CheGuevara
    Mein PC :
    PowerMac G4@450 Dual 1.5 GB RAM

    iBook G4 1Ghz
    768MB RAM

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •