Hallo
folgendes Problem:
Der folgende Quellcode beeinhaltet eine "Passwortabfrage" für ein Programm.
Das Passwort wird im Klartext in der Datei conn.txt niedergeschrieben. (Ja, ich weis, nicht sehr sinnvoll. Soll ja aber nur eine Übung sein)
So:
Wenn in der Datei conn.txt irgendetwas steht, und das auch beim Start des Programmes eingegeben wird, startet das funktioniert das Programm vollkommen korrekt.
Wenn allerdings innerhalb der Datei überhaupt nichts steht, fragt das Programm trotzdem nach einem (nat. nicht vorhandenen) Passwort.
AN der Datei kann es auch nicht liegen, die hab ich zu testzwecken schon des öfteren neu angelegt.Im richtigen Verzeichnis liegt die Datei auf jeden Fall, da es ja Funktioniert, wenn ein Passwort vergeben wurde.
Das ganze wurde auf einem MS Visual C++ Compiler kompiliert.
Hier der Code:
string all_list, search_word, all, pw, access;
int yes_no;
int main()
{
ifstream pwd("conn.txt");
getline(pwd, access);
if(access.length != 0)
{
goto pw_i;
}
else//if(access.length==0)
{
cout <<"Wollen sie ein Passwort zum Schutz der Informationen angeben? Dieses wird bei jedem Programmstart abgefragt!" << endl;
cout <<"1. Ja\n2.Nein\n" << endl;
cin >> yes_no;
}
pw_i:
{
cout <<"PW eingeben: " << endl;
cin >> pw;
if(pw == access)
{
goto pgrm;
}
else
{
exit(1);
}
}
switch(yes_no)
{
case 1:
{
cout <<"Bitte Passwort eingeben: " << endl;
cin >> pw;
ofstream pwd("conn.txt");
pwd << pw << endl;
goto pgrm;
}
case 2:
{
goto pgrm;
}
pgrm:
{
//Hier folgt das Hauptprogramm, was für das Problem an sich aber unwesentlich ist
.
.
.
}
Alles anzeigen
Des weiteren gefallen mir die "goto's" noch nicht so ganz...gibt es da vielleicht eine andere Möglichekeit?
Danke