"C" Passwort,Suchen, Ausgabe HELP

Ahh okay,

nur mit den inkrementieren klappt nich... dann muss ich doch quasi i=(0) mit einbinden also einen Festenwert zuteilen:

Code:
 while (true)
    {
      k= getch();
      
      if (k == 13)
      {
            i =( 0 );
            pwd[i] = '\0';
            
            break;
            
      }
      else
      {... //weiter

aber da sagt er mir auch noch das, dass Passwort falsch ist.

Gruß
 
pwd[ i ] ist ein Array.

pwd[ 0 ] = dort kommt der erste Buchstabe rein
pwd[ 1 ] = dort der Zweite.
usw.
pwd[ letzte Stelle für Buchstabe + 1 ] = "\0" für das Ende.

Du musst also jedes mal dein i um ein erhöhen, z.b. mit i++ oder i = i +1.

Gruß Sunny
 
Mit den Array vergibt man ja den speicher (jetzt bei mir) für das Passwort oder ?
Aber ich hab nich genau verstanden wie das geht also ich würde es so machen:
Passwort soll : 123 sein , soll es dann so aussehen ?:
Code:
 while (true)
    {
      k= getch();
      
      if (k == 13)
      {
            
            pwd[0] = '1';
            pwd[1] = '2';
            pwd[2] = '3';
            pwd[i] = '\0';
            break;
            
      }
      else
      {
          pwd[i] = (char)(k);
          printf ("*");
         
          
         
      }
    }


    if (strcmp(pwd, "123") == 0)
    
    { // usw.

Ich hab das noch nie gemacht also nich böse sein wenn ich so doofe fragen stelle ...
aber macht voll spaß dahinter zu blicken :).

Gruß
 
@XuLo: Wenn du nicht weißt was inkrementieren bedeutet, warum fragst du dann nicht einfach?

Dann überleg dir doch einfach mal was du dort mit deinem Code machst. Du setzt den String pwd auf "123" wenn der Benutzer die Eingabe-Taste drückt. Dann ist das Passwort doch immer "123" - völlig egal was der Benutzer vorher eingetippt hat?!

Du mußt die Zeichen im String pwd sammeln. Das heißt du willst doch eigentlich das 1 Zeichen was eingegeben wurde in pwd[0] speichern, das 2-te in pwd[1], das dritte in pwd[2] usw. bis jemand die Eingabe-Taste drückt.

Wenn du jetzt innerhalb der Schleife die Variable i nicht änderst (also inkrementierst), dann speicherst du jedes eingelesene Zeichen in pwd[0].

C++:
while (true) {
  k = getch();
  if (k == 13) {
    pwd[i] = '\0';
    break;
  } else {
    pwd[i] = k;
    i++; // <= Inkrementieren: i ist jetzt um 1 größer
  }
}
Gruß
 
Zurück