Login mit Speicherung in .txt Datei



  • Dazu speicherst du einfach die Variable, liest sie direkt aus und Voi Lá!



  • Das versteh ich nicht.

    Kannste mir vllt mal ein beispiel zeigen???

    mfg

    handballfan



  • #include <iostream>
    #include <stdlib.h>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    
    int passwort;
    int a = 45;
    
    cout<<"Los gib dein Passwort ein!"<<endl;
    
    cin>>passwort;
    
    if (passwort==a)
    {
    cout<<"richtig"<<endl;
    }
    
    else {
    
    cout<<"falsch"<<endl;
    }
    
    system("PAUSE");
    return 0;
    }
    

    Ist nicht das was du suchst, ist aber ein Beispiel wie du es angehen solltest.
    Wenn du meinen Code von vorhin verstanden hast, wirst du diesen "Beispielcode" auch mit leichtigkeit interpretieren können und ihn so umformen und anpassen, dass du deine Ziel erreichst. Muss jetzt aber weiter arbeiten. Komme nachher wieder.



  • Mein erstes Beispiel hast du wohl nicht wirklich verstanden, weil es da eine Klasse hatte und so, oder?

    Vielleicht blickst du hier ja durch:

    #include <iostream>
    #include <fstream>
    #include <string>
    
    static const char *fn="pw.txt";
    
    bool validate_pw(std::string _pw,std::string _nm){
    	std::ifstream din;
    	din.open(fn,std::ios_base::in);
    
    	if(!din){ //Existiert noch keine Datei pw.txt?
    		std::ofstream dout;
    		dout.open(fn,std::ios_base::out);
    
    		if(!dout){
    			std::cerr<<std::endl<<"ERROR!!!"<<std::endl;
    			return false;
    		}
    		else{
    			//Nach dem pw.txt erfolgreich erstellt wurde
    			//wird nun das Passwort und in die naechste
    			//Zeile der Benutzername gespeichert.
    			dout<<_pw<<std::endl<<_nm;
    			dout.close();
    			return true;
    		}
    	}
    	else{
    		//Passwort und Benutzername werden aus pw.txt
    		//ausgelesen und...
    		std::string pw,nm;
    		din>>pw>>nm;
    		din.close();
    
    		//...mit der Benutzereingabe verglichen.
    		if(pw==_pw&&nm==_nm)
    			return true;
    		else
    			return false;
    	}	
    }
    
    int main(void){
    	std::cout<<"Ihr Name: ";
    	std::string nm;
    	std::cin>>nm;
    
    	std::cout<<"Ihr Passwort: ";
    	std::string pw;
    	std::cin>>pw;
    
    	if(!validate_pw(pw,nm)){
    		//Das Passwort ist falsch oder es ist ein Fehler
    		//aufgetreten innerhalb von validate_pw().
    	}
    }
    


  • Hey, dein code funktioniert gut.

    aber ich habe hier meinen eigenen code:

    #include <cstdlib> 
    #include <iostream> 
    #include <conio.h> 
    #include <windows.h> 
    #include <string> 
    #include <fstream>
    using namespace std;
    
    int main()
    {
         string ja="vorhanden";
         string sprung;
    
        string benutzername,passwort;
        cout <<"Willkommen! Sie starten zum ersten Mal!\n\nBitte geben sie einen Benutzernamen an:"<<endl<<endl;
        cin >>benutzername;
    
        cout <<"\nGeben sie jetzt ihr gewuenschtes Passwort ein:"<<endl<<endl;
        cin >>passwort;
        cout<<endl;
    
        fstream benutzer;
        benutzer.open ( "bn.dat" , ios :: out);
        benutzer << benutzername<<endl;
        benutzer.close ();
    
        fstream pass;
        pass.open ( "pw.dat" , ios :: out);
        pass << passwort << endl;
        pass.close ();
    
        fstream kontrolle;
        kontrolle.open ( "da.dat" , ios :: out);
        kontrolle << ja;
        kontrolle.close ();
    
        ifstream test;
        test.open ( "da.dat" , ios :: in);
        getline (test, sprung);
    
        cout <<"Benutzer """ << benutzername <<""" erfolgreich angelegt!" <<endl;
    
            system ("cls");
            system("C:\\WINDOWS\\system32\\cmd.exe");
            return 0;
    }
    

    das einzige problem ist, das ich prüfen will, ob die datein da.dat schon existiert und wenn ja, will ich den einlogvorgang starten. wenn sie nicht existiert (wie beim ersten start), will ich den vorgang starten, das er sich anmelden kann.

    wie geht das.

    mfg

    handballfan



  • Der code eben war ein wenig komisch.

    #include <cstdlib> 
    #include <iostream> 
    #include <conio.h> 
    #include <windows.h> 
    #include <string> 
    #include <fstream>
    using namespace std;
    
    int main()
    {
    
        string benutzername,passwort;
        cout <<"Willkommen! Sie starten zum ersten Mal!\n\nBitte geben sie einen Benutzernamen an:"<<endl<<endl;
        cin >>benutzername;
    
        cout <<"\nGeben sie jetzt ihr gewuenschtes Passwort ein:"<<endl<<endl;
        cin >>passwort;
        cout<<endl;
    
        fstream benutzer;
        benutzer.open ( "bn.dat" , ios :: out);
        benutzer << benutzername<<endl;
        benutzer.close ();
    
        fstream pass;
        pass.open ( "pw.dat" , ios :: out);
        pass << passwort << endl;
        pass.close ();
    
        cout <<"Benutzer """ << benutzername <<""" erfolgreich angelegt!" <<endl;
    
            system ("cls");
            system("C:\\WINDOWS\\system32\\cmd.exe");
            return 0;
    }
    

    der ist besser und auch der richtige.

    wie soll ich da jetzt noch prüfen lassen, ob die passwort und benutzerdatei schon existieren???

    mfg

    handballfan



  • goto anywhere hat ja schon einen guten Quellcode, der auch funktioniert, eingestellt.

    aber könntest du mir den mal zeile für zeile erklären, was das alles bedeutet!?!?

    mfg

    handballfan



  • wie soll ich da jetzt noch prüfen lassen, ob die passwort und benutzerdatei schon existieren???

    Prüf einfach, ob sich überhuapt was in der Datei befindet, wenn ja, starte die Abfrage!
    Oder du machst es so, dass wenn du nichts überprüfen konntest, du eine Ausgabe machst.



  • WiredCoder schrieb:

    wie soll ich da jetzt noch prüfen lassen, ob die passwort und benutzerdatei schon existieren???

    Prüf einfach, ob sich überhuapt was in der Datei befindet, wenn ja, starte die Abfrage!
    Oder du machst es so, dass wenn du nichts überprüfen konntest, du eine Ausgabe machst.

    Wenn diese Datei evtl. noch garnicht existiert???
    Nein, er muss erst überprüfen ob die Datei überhaupt existiert und das geht so:
    (Wenn das öffnen der Datei fehlschlägt, ist sie wohl einfach nicht vorhanden.)

    #include <iostream> 
    #include <fstream> 
    #include <string> 
    
    static const char *fn="pw.txt"; 
    
    bool validate_pw(std::string _pw,std::string _nm){ 
        std::ifstream din; 
        din.open(fn,std::ios_base::in); 
    
        if(!din){ //Existiert noch keine Datei pw.txt? 
            std::ofstream dout; 
            dout.open(fn,std::ios_base::out);
        . . .
    


  • @ goto anywhere
    Du solltest versuchen, ihm nicht alles in den Mund zu legen. Mittlerweile
    haben wir ihm genug Information und Codes gegeben!


Anmelden zum Antworten