Gorgoroth
24-04-2005, 14:29
Hallo,
ich versuche mich gerade in der Programmierung von einem Hangman-Spiel. Zur Zeit stehe ich vor dem Problem, in einer Variablen des Typs char den Tipp des Spielers zu speichern, welcher Buchstabe im gesuchten Wort vorkommt. Anscheinend ist hier irgendwo noch ein \n im stdin versteckt, dass mir die char-Variable automatisch überschreibt und dann bei
printf("Sie glauben also, dass %c im Wort vorkommt.\n", tipp);
Sie glauben also, dass
im Wort vorkommt.
ausgibt.
Hier ist der Source von diesem preprepre-alpha-Hangman-spiel ;)
/* ----- Header-Files ----- */
#include <stdio.h>
#include <stdlib.h>
// #include <curses.h>
/* ----- Funktionsprototypen ----- */
int main(void)
{
/* ratewort_eingeben-Anfang */
/* Zweck: Speichert das Ratewort im String wort */
char *wort,
puffer[25+1];
wort = malloc(strlen(puffer)+1);
if (wort == NULL)
{
puts("Fehler bei der Speicherreservierung!");
return 1;
}
puts("Geben Sie das zu erratende Wort ein.");
scanf("%s", wort);
system("clear"); /* hier noch eine if-Scheife machen, die prüft, welches OS verwendet wird, und dann */
/* halt den entsprechenden Code liefert. Das hier wird nur auf Unices funzen. */
printf("Das Wort war %s \n", wort); /* ist nur zum Testen, ob das mit String auch geklappt hat. Mit */
/* steigendem C-Selbstbewusstsein, kann ich sowas dann weglassen */
/* ratewort_eingeben-Ende */
/* striche_ausgeben-Anfang */
/* Zweck: Für jeden Buchstaben von wort einen Strich ausgeben */
int x = 0,
i;
char strich = '-';
x = (strlen(wort) - 1);
for (i = 0 ; i <= x ; i++)
{
printf("%c", strich);
}
printf("\n");
/* striche_ausgeben-Ende */
/* tipp_speichern-Anfang */
/* Zweck: speichert in einer Variablen einen buchstaben, den man im Wort vermutet */
char tipp;
puts("Geben sie bitte einen Buchstaben ein.");
tipp = getchar();
printf("Sie glauben also, dass %c im Wort vorkommt.\n", tipp);
/* tipp_speichern-Ende */
return 0;
}
P.S.: Was ist in diesem Forum eher erwünscht, Source-Code zu posten oder als Anhang mitzugeben?
ich versuche mich gerade in der Programmierung von einem Hangman-Spiel. Zur Zeit stehe ich vor dem Problem, in einer Variablen des Typs char den Tipp des Spielers zu speichern, welcher Buchstabe im gesuchten Wort vorkommt. Anscheinend ist hier irgendwo noch ein \n im stdin versteckt, dass mir die char-Variable automatisch überschreibt und dann bei
printf("Sie glauben also, dass %c im Wort vorkommt.\n", tipp);
Sie glauben also, dass
im Wort vorkommt.
ausgibt.
Hier ist der Source von diesem preprepre-alpha-Hangman-spiel ;)
/* ----- Header-Files ----- */
#include <stdio.h>
#include <stdlib.h>
// #include <curses.h>
/* ----- Funktionsprototypen ----- */
int main(void)
{
/* ratewort_eingeben-Anfang */
/* Zweck: Speichert das Ratewort im String wort */
char *wort,
puffer[25+1];
wort = malloc(strlen(puffer)+1);
if (wort == NULL)
{
puts("Fehler bei der Speicherreservierung!");
return 1;
}
puts("Geben Sie das zu erratende Wort ein.");
scanf("%s", wort);
system("clear"); /* hier noch eine if-Scheife machen, die prüft, welches OS verwendet wird, und dann */
/* halt den entsprechenden Code liefert. Das hier wird nur auf Unices funzen. */
printf("Das Wort war %s \n", wort); /* ist nur zum Testen, ob das mit String auch geklappt hat. Mit */
/* steigendem C-Selbstbewusstsein, kann ich sowas dann weglassen */
/* ratewort_eingeben-Ende */
/* striche_ausgeben-Anfang */
/* Zweck: Für jeden Buchstaben von wort einen Strich ausgeben */
int x = 0,
i;
char strich = '-';
x = (strlen(wort) - 1);
for (i = 0 ; i <= x ; i++)
{
printf("%c", strich);
}
printf("\n");
/* striche_ausgeben-Ende */
/* tipp_speichern-Anfang */
/* Zweck: speichert in einer Variablen einen buchstaben, den man im Wort vermutet */
char tipp;
puts("Geben sie bitte einen Buchstaben ein.");
tipp = getchar();
printf("Sie glauben also, dass %c im Wort vorkommt.\n", tipp);
/* tipp_speichern-Ende */
return 0;
}
P.S.: Was ist in diesem Forum eher erwünscht, Source-Code zu posten oder als Anhang mitzugeben?