Danke für die Antwort erstmal.
Du meinst also:
Code:
char tipp;
puts("Geben sie bitte einen Buchstaben ein.");
while(getchar!="\n")
tipp = getchar();
printf("Sie glauben also, dass %c im Wort vorkommt.\n", tipp);
Wenn ja, dann gibt er "Geben sie bitte einen Buchstaben ein." aus.
ich gebe z.B. a <ENTER> ein
er springt in die nächste Zeile.
ich kann wieder was eingeben
er springt wieder in die nächste Zeile usw.
Der veränderte Source sieht dann so aus.
Code:
/* ----- 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("Sie haben %s eingegeben.\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.");
while(getchar!="\n")
tipp = getchar();
printf("Sie glauben also, dass %c im Wort vorkommt.\n", tipp);
/* puts("Geben sie bitte einen Buchstaben ein.");
tipp = getchar();
printf("Sie glauben also, dass %c im Wort vorkommt.\n", tipp); */
/* tipp_speichern-Ende */
/* tipp_vergleichen-Anfang */
/* Zweck: durchläuft den String wort und überprüft, ob tipp darin vorkommt. */
int cnt_tipp_vergl = 0,
fehler = 0;
for (cnt_tipp_vergl = 0; cnt_tipp_vergl <= x; cnt_tipp_vergl++)
{
if (wort[cnt_tipp_vergl] == tipp)
printf("Der Buchstabe %c kommt an der %d. Stelle im Wort vor.\n", tipp, cnt_tipp_vergl+1);
else
{
fehler++;
switch (fehler)
{
case 1:
system("clear");
puts(" ");
puts(" ");
puts(" ");
puts(" ");
puts(" ");
puts(" ________ ");
puts("|XXXXXXXX|");
puts("´´´´´´´´´");
break;
case 2:
puts(" ");
puts("| ");
puts("| ");
puts("| ");
puts("| ");
puts("|________ ");
puts("|XXXXXXXX|");
puts("´´´´´´´´´");
system("clear");
break;
case 3:
puts("_____");
puts("|/ |");
puts("| O");
puts("| ");
puts("| ");
puts("|________");
puts("|XXXXXXXX|");
puts("´´´´´´´´´");
system("clear");
break;
case 4:
puts("_____");
puts("|/ |");
puts("| O");
puts("| /|\\");
puts("| ");
puts("|________");
puts("|XXXXXXXX|");
puts("´´´´´´´´´");
system("clear");
break;
case 5:
puts("_____");
puts("|/ |");
puts("| O");
puts("| /|\\");
puts("| / \\");
puts("|________");
puts("|XXXXXXXX|");
puts("´´´´´´´´´");
break;
}
printf("Der Buchstabe %c kommt im Wort nicht vor. Sie haben noch %d Versuche offen.\n", tipp, 5-fehler);
break;
}
}
/* tipp_vergleichen-Ende */
return 0;
}
Lesezeichen