/****************************************************************************************\
 *  CeasarMain  -- Programm-Muster zum Testen der Ceasar Verschlüsselung                *
 *                 Verwendet die Aufgabe aus Übung 3                                    *
 *                                                                                      *
 *  Version:    2.0 Abfrage der Dateinamen                                              *
 *                                                                                      *
 *  Author:     Bernd Herth                                                             *
 *                                                                                      *
 *  Datum:      21.11.2003                                                              *
 *                                                                                      *
 *  Verwendung:	Verwendet den in Aufgabe 3 erstellten Verschlüsselungsalgorithmus       *
 *              nach Ceasar. Das Programm fragt nach einem Dateinamen für die           *
 *              Ein- und Ausgabedatei sowie einem Schlüssel im BEreich von 0-26         *
 *                                                                                      *
\****************************************************************************************/
#include <fstream>	// File Ein/Ausgabe
#include <iostream>	// Standard Ein/Ausgabe
#include <string.h>     // Für strcpy()... Funktionen

#include "xxxxxx.h"	<< Bitte hier Ihre Header Datei einfügen

using namespace std;

//
// Hier können globale Variablen definiert werden (falls nötig)
//  

//
// Konstanten 
//
const int MaxFilename = 256;

//
// Start des Hauptprogrammes in der einfachen Form ohne Kommandozeile
//
int main ()
{
	char InputFN[MaxFilename] = "xxxxxx";               // Default Eingabe Filename
	char OutputFN[MaxFilename] = "xxxxxxx.enc";         // Default Ausgabe Filename
	int key;                                            // Schlüssel

	//
	// Ausgabe einer Begrüssung...
	//
	cout << "Testprogramm zum Verschluesseln nach Ceasar" << endl
	     << "===========================================" << endl << endl;

	//
	//  Einbau einer Benuztereingabe für Filenamen. 
	//	Tip: Bauen Sie den Dialog so, dass der Defaultname vorgeschlagen wird
	//       z.B.  Eingabedatei [ceasar.cpp] : 
	//       und der Benutzer durch Eingabe von Return dies bestätigen kann.
	//       Bitte verwendet Sie hierzu cin.get() oder cin.getline(...) unter Verwendung
	//       einer temporären Variablen.
	//		 
	//
	char temp[MaxFilename];

	//
	// Eingabedatei erfragen und öffnen
	//


	Hier steht Ihr Dialog für die Dateieingabe. Am Ende sollte der Eingabename
	in der Variablen char InputFN[] stehen



	ifstream InputFile(InputFN);					// Deklaration Eingabestrom ifstream 			
	if (InputFile.fail())						// mit fail() wird gepfrüft
	{								// ob sich die Datei öffnen lässt
		
		Fehlermeldung und Beenden des Programms !!!!!!!!!!!!!!!
	}


	//
	// Ausgabedatei vorschlagen (Achtung basierend auf INPUT Datei, neuen Wert erfragen und öffnen
	//

	Hier steht Ihr Dialog für die Dateieingabe. Am Ende sollte der Eingabename
	in der Variablen char OutputFN[] stehen


	ofstream OutputFile(OutputFN);					// Deklaration Ausgabestrom ofstream
	if (OutputFile.fail())						// mit fail() wird gepfrüft
	{								// ob sich die Datei öffnen lässt
		Fehlermeldung und Beenden des Programms !!!!!!!!!!!!!!!
	}


	//
	//  Key erfragen !!!!!!!
	//
	
	Hier steht Ihr code

	//
	//
	//  Ab hier sind beide Dateien geöffnet !!
	//
	//  Bitte lesen Sie die Eingabedatei z.B. mit: Eingabestrom.get(Zeichen); so lange bis 
	//  Dateiende (Eingabestrom.eof()==true) erreicht.
	//
	

	Hier steht Ihr Code: 
	
		lesen
		verschlüsseln
		schreiben
		
		(Optional - zusätzliche Ausgabe auf Bildschirm)
		
		bis zum Erreichen des Dateiendes



	//
	//	Damit sind alle Daten gelesen/geschrieben, also die Dateien zumachen....
	//
	OutputFile.close();
	InputFile.close();

	return 0;

}
