Code: Alles auswählen
void inputname() //Liest den Nachnamen der Klassenstruktur ein(GETESTET/ABGESCHLOSSEN)
{
while(1)
{
cout << textname;
cin >> person.name;
if (cin.good())
{
clear();
if (Debug == true)
{
cout << "Streamstatus OK bei inputname()" << endl;
}
break;
}
else
{
clear();
if (Debug == true)
{
cout << "Streamstatus BAD bei inputname()" << endl;
}
}
}
}
int handle_file() //Dateizugriff-Datei öffnen/schließen--Neuer Bereich oder Änderung(CRITICAL BUG!!!!)
{
ofstream file; //Dateiobjekt erzeugen
file.open(filename.c_str(), ios_base::out | ios_base::app);
if (!file)
{
cerr << "CRITICAL ERROR: Could not open File " << filename << endl;
return 1;
}
file << "SECTION_START" << endl;
file << "id=" << person.id << endl;
file << "name=" << person.name << endl;
file << "vorname=" << person.vorname << endl;
file << "buehne=" << handle_enum(person.buehne) << endl;
file << "mikro=" << handle_enum(person.mikro) << endl;
file << "tuer=" << handle_enum(person.tuer) << endl;
file << "anlage=" << handle_enum(person.anlage) << endl;
file << "SECTION_END" << endl;
file.close();
return 0;
}
string handle_enum(int i) //Eingaben der Aufzählung lesbar für Datei umwandeln(GETESTET/ABGESCHLOSSEN)
{
if (i==0) return "NO";
else if (i==1) return "YES";
else if (i==2) return "JUMPER";
else
{
cerr << "UNCRITICAL-ERROR in Function \"handle_enum()\"" << endl;
cerr << "Given INT is not in allowed range" << endl;
return "ERROR";
}
}
Rufe ich danach nämlich die handle_file Funktion auf, um die Eingaben in die Datei zu schreiben, wird aus meiner Textdatei eine Binärdatei. Das ist natürlich unerwünscht und kann mir die ganze Liste unbrauchbar machen.
Wie kann ich mein Programm dazu zwingen, mir in jedem Fall nur Textelemente in die Datei zu schreiben? Das kann auch ein Errorcode sein, immer noch besser, als die ganze Datei zu schrotten.
Gruß Bebu