If-Abfrage geht nicht und Daten speichern



  • Hi.
    Ich Programmiere noch nicht sehr lange C++.
    Ich habe zwei Fragen:
    1. Warum geht folgende If-Abfrage nicht
    -------------
    if (z.p2 == z.passwort)
    {
    cout<<"Programmende"<<endl;
    cout<<endl<<endl<<"Sie haben sich erfolgreich angemeldet"<<endl;
    }
    else
    {
    cout<<"Passwort falsch!"<<endl<<"Programmende"<<endl;
    }
    --------------
    (Das ganze ist nur ein Test. Also man meldet sich nicht wirklich irgendwo an.)
    Selbst wenn z.p2 gleich z.passwort ist wird ausgegeben, dass das Passwort falsch sei.

    2. Kann man Daten, welche Variablen zugewisen werden, irgendwie speichern, so dass man sie bei einem späteren Aufruf des Programms, wieder verwenden kann?

    So. Das sind meine beiden fragen.
    Danke schonmal im vorraus.



  • warum kommt beim wort vorraus sternchen??



  • 1. Was ist z? 😕 Zeig mal bisschen mehr Code.

    2. Klar geht das, schau mal in die C++-FAQ unter Ströme (Seite 2) und hier

    bbbbb schrieb:

    warum kommt beim wort v****** sternchen??

    Ist ein Gag der Administratoren, denk mal drüber nach :p



  • -predator- schrieb:

    Ist ein Gag der Administratoren

    ... der aber, und das sei noch erwähnt, nicht unberechtigt ist.



  • bbbbb schrieb:

    warum kommt beim wort v****** sternchen??

    Immer noch keine Idee ?? Dann werf mal nen Blick in den Duden.



  • Hier hast du mehr Code.
    Und nochmal zur Info: Das ganze is nur nen Test. und ich weiß, dass man einiges besser lösen kann und einiges auch kein Sinn macht. Aber bitte nur bemerkungen zu meiner Frage.

    struct test
    {
    char benutzer[30];
    char passwort[10];
    char p2[10];
    };

    main()
    {

    test z;

    cout<<"Hallo"<<endl<<"Dies ist ein Testprogramm."<<endl;

    for (int a=0;a<9;a++)
    {
    z.passwort[a]=0;
    z.p2[a]=0;
    }

    puts(z.passwort);
    puts(z.p2);

    cout<<"Bitte geben sie ihren gewuentschten Benutzernamen an. Hoechstens 29 Zeichen"<<endl;

    for(int o=0; o<28;o++)
    {
    cin>>z.benutzer[o];
    if(z.benutzer[o]=13)
    break;
    }

    cout<<"Nun geben sie ihr gewuenschtes Passwort ein. Hoechstens 9 Zeichen"<<endl;
    cout<<"Bestätigen sie ihr passwort mit der Enter-Taste"<<endl;

    for(int x=0; x<9;x++)
    {
    z.passwort[x]=getch();
    if (z.passwort[x]==13)
    break;
    else
    cout<<"*";
    }

    cout<<endl;

    cout<<"Wiederholen sie ihr Passwort"<<endl;

    for(int y=0; y<9;y++)
    {
    z.p2[y]=getch();
    if (z.p2[y]==13)
    break;
    else
    cout<<"*";
    }
    cout<<endl<<endl;

    puts(z.passwort);
    puts(z.p2);

    if (z.p2 == z.passwort)
    {
    cout<<"Programmende"<<endl;
    cout<<endl<<endl<<"Sie haben sich erfolgreich angemeldet"<<endl;
    }
    else
    {
    cout<<"Passwort falsch!"<<endl<<"Programmende"<<endl;
    }

    system("pause");

    }



  • Du kannst nicht so einfach Arrays vergleichen. Dabei vergleichst du nur die Adressen. Schau mal std::string an oder verwende strcmp(...).

    Gruß



  • Du kannst C-Strings nicht mit == vergleichen, das musst du entweder selbst schreiben oder einfach man: strcmp benutzen.
    Oder du benutzt gleich std::string.

    //edit: zu spät...



  • ok danke.
    ich werds gleich versuchen.



  • AberHallo schrieb:

    bbbbb schrieb:

    warum kommt beim wort v****** sternchen??

    Immer noch keine Idee ?? Dann werf mal nen Blick in den Duden.

    arrrgh. wenn du schon den duden erwähnst, dann solltest du auch "wirf" schreiben. es heißt nämlich "wirf" nicht w*rf. und iss. wirf. iss.



  • hi.
    noch was wegen, der Sache mit dem Variablen in eine andere Datei schreiben:
    Geht da auch mit Tabellen (also Exel o.ä.)?
    Geht das dann auch so ähnlich wie bei VBA mit Cells und diesen zeug?


Anmelden zum Antworten