Fehler : >>exit<< wurde in disem Gültigkeitsberich nicht definiert .......



  • Hallo,

    Kann mir jemand vielleicht sagen woher der Fehler kommt?

    hier das Quellcode :
    ###################################################################
    // C++ Kurs
    // Beispiel zum Dateihandling mittels Streams

    // Dateien einbinden
    #include <iostream>
    #include <fstream>
    using namespace std;

    // Dateiname
    const char* const pszDATEI = "kunden.dat";
    // Hauptprogramm
    int main()
    {
    // Definition der Kundendaten mit Initialisierung
    short kdNummer = 123;
    double umsatz = 12.3f;
    short tag=10,monat=5,jahr=1999;

    // Das Ausgabestream-Objekt wird innerhalb eines Blocks
    // definiert. Am Blockende wird es geloescht und damit
    // die Datei geschlossen!
    {
    // Ausgabestream-Objekt erstellen und mit Datei verbinden
    ofstream OutFile(pszDATEI);
    // Fehler abfangen
    if (!OutFile)
    {
    cout << "Fehler beim Erstellen der Datei!\n";
    exit (1);
    }
    // Daten in Datei schreiben
    // ACHTUNG! Nach jedem Datum entweder ein Leerzeichen
    // oder ein Zeilenvorschub eingeben damit Daten nachher
    // auch wieder eingelesen koennen
    OutFile << kdNummer << " " << umsatz << endl;
    OutFile << tag << " " << monat << " " << jahr << endl;
    }
    // Blockende, Datei ist wieder geschlossen!

    // Variablen zur Kontrolle mit 0 belegen
    kdNummer = tag = monat = jahr = 0;
    umsatz = 0.0;

    // Eingabestream-Objekt definieren und jetzt mit open() mit
    // der Datei verbinden. Moeglich waere auch die Datei direkt
    // wie vorhin mit dem Stream zu verbinden
    ifstream InFile;
    InFile.open(pszDATEI);
    // Fehler abfangen!
    if (!InFile)
    {
    cout << "Fehler beim Oeffnen der Datei!\n";
    exit(2);
    }
    // Daten aus Datei auslesen
    InFile >> kdNummer >> umsatz;
    InFile >> tag >> monat >> jahr;
    // Dateiverbindung aufheben
    InFile.close();
    // Eingelesene Daten formatiert auf Bildschirm ausgeben
    cout << "Kundendaten:\n------------\n";
    cout << "KD-Nummer : " << kdNummer << endl;
    cout << "Umsatz in TSD : " << umsatz << endl;
    cout << "Letzter Umsatz am: ";
    cout << tag << "." << monat << "." << jahr << endl;
    // Fertig!
    }
    ##########################################################################

    Gruß
    Michi



  • #include <stdlib.h>
    


  • Wenn mich nicht alles täuscht, wird exit() in der cstdlib deklariert.



  • DANKE! 😃



  • Bitte benutze in Zukunft die CPP-Tags. Also einfach am Anfang des Codes [cpp] und am Ende [/cpp] schreiben. Dann hast du schöne Formatierung:

    int main()
    {
        return 0;
    }
    

    P.S. Nicht <stdlib.h> , sondern wie schon angetönt <cstdlib> .



  • alles klar! Danke für den Tipp!

    und sowohl :

    #include <cstdlib>
    

    als auch

    #include <stdlib.h>
    

    hat funktioniert! 😃



  • 😃

    Nein, im Ernst: Du solltest unter C++ <cstdlib> verwenden, da werden die Funktionen auch in den Namensraum std eingebunden. <stdlib.h> ist C, C++-Standardheader haben nie eine Endung. 😉


Anmelden zum Antworten