C++ Kurs

Wenn fertig, bitte Fenster schließen

Lösung zur Lektion "Operatoren new und delete"


// Lösung zu new und delete

// Dateien einbinden

#include <iostream>
#include <fstream>
#include <string>

// Dateiname
const char *const pszFILENAME = "names.txt";

// main() Funktion
int main()
{
   // Zeiger auf ein string Feld
   std::string *pStringArray;
   // Anzahl der Einträge in der Datei
   short noOfEntries;

   // Blockbeginn!
   // Da das ifstream Objekt innerhalb des Blocks definiert wird,
   // wird es beim Verlassen des Blocks automatisch gelöscht, was
   // wiederum zum Schliessen der Datei führt

   {
      // Datei öffnen
      std::ifstream inFile(pszFILENAME);
      if (!inFile)
      {
         std::cout << "Datei " << pszFILENAME << " konnte nicht geöffnet werden!\n";
         exit(1);
      }

      // Anzahl der Einträge einlesen
      inFile >> noOfEntries;
      // Zeilenende CR/LF überspringen!
      inFile.ignore(1);
      // string Feld anlegen
      pStringArray = new std::string[noOfEntries];
      // Alle Namen einlesen
      for (int index=0; index<noOfEntries; index++)
      {
         // Eine Zeile einlesen
         std::getline(inFile,pStringArray[index]);
      }
   }  // Hier wird die Datei wieder geschlossen

   // Alle eingelesenen Zeilen jetzt ausgeben
   for (int index=0; index<noOfEntries; index++)
      std::cout << pStringArray[index] << std::endl;

   // string Feld freigeben
   delete [] pStringArray;
}