Eingabe eines string mit scanf()



  • Hey,

    ich würde gerne für mein Vier-Gewinnt-Spiel eine Texteingabe für den Spielernamen programmieren. Der Befehl scanf() scheint mir dazu eine passende Möglickeit zu sein. Doch leider schmiert mir das Programm immer ab nach dem ich den Namen in das Konsolenfester eingetragen habe.

    char spieler_O;
    char spieler_X;
    
    printf("Name des ersten Spielers (O):");
    scanf("%s", &spieler_O);
    printf("Name des zweiten Spielers (X):");
    scanf("%s", &spieler_X);
    

    Könnte mir jemand sagen wo der fehler liegt oder wie ich es anders machen könnte?

    Danke im voraus


  • Mod

    char ist ein einzelnes Zeichen, da passt kein Name rein. Wenn du mehrere Zeichen nacheinander brauchst, kannst du ein Array benutzen:

    char spieler_O[50];
    char spieler_X[50];
    

    Dieses Beispiel ist ein char-Array mit Platz für 49 Zeichen (das fehlende Zeichen ist reserviert um das Ende der Zeichenkette anzuzeigen).

    Damit sollte dein Programm erstmal laufen. Was jedoch passiert, wenn man trotzdem mehr als 49 Zeichen eingibt ist eine andere Geschichte...



  • Hey,

    wie müsste ich denn dann den ganzen Namen ausgeben?
    Würde es so funktionieren?

    printf("Der Name von Spieler_O ist %s.\n",spieler_O);
    

  • Mod

    spleen schrieb:

    Würde es so funktionieren?

    printf("Der Name von Spieler_O ist %s.\n",spieler_O);
    

    Ja.



  • Danke, probiere es heute abend gleich mal aus.


Anmelden zum Antworten