newbie Frage :)



  • Hi Leute,

    hab vorige Woche angefangen in C++ einzusteigen. Nachdem ich angefangen habe ein Buch über den Einstieg zu lesen, habe ich begonnen selbst kleine "Programme zu schreiben".

    Zu meinem Problem:

    Ich wollte ein Prog schreiben, bei dem der Nutzer ein Passwort eingeben muss.

    Falls er das PW falsch eingibt, erscheint die Meldung..... usw..
    Aber irgendwie klappt da garnichts, verstehe aber absolut nicht warum.

    Über Hilfe wäre ich sehr dankbar.

    Also hier der Code:

    #include <iostream>

    using namespace std;

    int main(void)
    {
    int Passwort = 21;
    char PasswortN;

    do
    {
    cout << " Bitte geben Sie das Passwort ein! : "<< endl << endl;
    cin >> PasswortN;

    if (PasswortN == Passwort){
    cout << " Zugriff gewährt " << endl;
    }
    if (PasswortN != Passwort){
    cout << " Falsches Passwort! " << endl;
    }

    }while (PasswortN!=Passwort);

    }



  • Hi...

    Ich würde das mit strings machen ist für diesen zweck viel sinnvoller.

    Sieht dann ungefähr so aus:

    #include <string>
    #include <iostream>
    using namespace std;
    
    int main(void){
    
    	string password = "pass";
    	string eingabe;
    
    	do 
    	{
    		cout<<"Bitte Passwort eingeben: "<<endl;
    		cin>>eingabe;
    
    		if (eingabe == password){
    			cout<<"Passwort ist korrekt!"<<endl;
    		}else{
    			cout<<"Passwort ist falsch!"<<endl;
    		}
    
    	} while(eingabe != password);
    
    	return 0;
    }
    

    ...



  • Oh klasse, schnelle Antwort.

    Ah ok dank dir. Aber wo lag der Fehler meines Programmes?

    Mir gehts halt auch darum zu verstehen, um aus meinen Fehlern zu lernen 🙂



  • Ok habs selbst verstanden... geht nicht mit den Variablen int oder char... 🙂



  • int und char sind keine variablen sondern Datentypen: int steht für eine ganzzahl und char steht für ein zeichen...

    daher sind hier Strings geeignet, ist ungefähr wie eine aneinanderreichung von chars...hoffe das war verständlich.

    Viel Spaß bei C++ noch 🙂



  • naja dein Code wäre leichter erfüllbar gewesen, wenn du statt 21 ('NAK') eine 40 oder so genommen hättest. Die Bedingung wäre dann erfüllt gewesen, wenn der Benutzer '(' eingegeben hätte(also bei 40) ...
    Beschäftige dich mal mit der ASCII-Tabelle 🙂
    achja in C war ein String ein Array von Zeichen(char) mit einem (Null)Terminierungszeichen('\0') am Ende (damit konnte man eben jenes feststellen).


Anmelden zum Antworten