#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>

const int GROESSE=100;

class stacker
{
private:
   int hoehe;         // Wie viel vom Stack ist belegt, 0 falls Stack leer ist
   int stack[GROESSE+1];   // unterstes Element ist [1], oberes variiert
                      // (laut Konvention von C beginnt Array bei 0, wir
                      //beginnen der Uebersicht halber erst bei 1.
public:
   stacker();
   ~stacker();
   int TOP (void);
   void PUSH (int);
   void POP (void);
   int EMPTY (void);       //int weil in C++ kein bool existiert
   void CREATE (void);
   void GIBAUS (void);
};




stacker::stacker (void)                // Konstruktor, wir automatisch auf-
                               // gerufen vei
{
   hoehe=0;
   cout << "\nHab leeren Stack erschaffen!";
}

stacker::~stacker (void)               // Destruktor
{
   hoehe=0;
   cout << "\nHab Stack komplett zerstoert!\n";
}


int stacker::TOP (void)                // Gib oberstes Element vom Stack aus
{
   if (hoehe>0)
   {
      return stack[hoehe];
   }
   else
   {
      cout << "\nTOP: Stapel ist leer";
      return -1;
   }
}

















void LeseFeld (void)
{
   char zeile[250];
   char Datei[]="fillingborder";

   int Feld [100] [100];
   int counter=0;

   ifstream eingabe (Datei, ios::in | ios::nocreate);    
	                              // oeffne Datei zum Auslesen

   while (eingabe.good())  // Bis wir am Zeilenende angekommen sind
   {
   eingabe.getline(zeile,250);
   cout << "\n" << zeile;
   }
}


void main (void)
{
   cout << "Beginn";
   stacker Haufen;
   //Haufen.PUSH (9);
   //Haufen.PUSH (6);
   //Haufen.PUSH (1);
   cout << "\nOberstes Element: " << Haufen.TOP();
   //Haufen.GIBAUS();
   //Haufen.POP ();
   //Haufen.GIBAUS();
   LeseFeld();
   
}
