gpt4 book ai didi

c - 基本 C Hangman 代码问题

转载 作者:行者123 更新时间:2023-11-30 17:22:09 25 4
gpt4 key购买 nike

大家好,我正在学习 C,并且开始编写 Hangman 游戏。这应该播放超过 1 个单词,我选择了“informatik”。

我想做的是询问用户名,然后开始。

#include<stdio.h>            
int main() {
int correct = 0;
int mistake = 0;
int number = 0;
char name[20];
char Word[]={'i','n','f','o','r','m','a','t','i','k'};
char guessStatus[]={'_','_','_','_','_','_','_','_','_','_','\0'};
char guess;
printf("##### Welcome to Hangman #####\nWhat is your Name?\n");
scanf(" %s", name);
fflush(stdin);
printf("Hello %s!\n", name);
while (mistake <=10 && number<10) {
printf("Guess a letter: ");
guess = getchar();
printf("%c", guess);
correct = 0;
for (int search=0; search<10; search++)
{


if (guess == Word[search]){
number++;
guessStatus[search] = Word[search];
correct = 1;
}
}
if (correct == 0){
mistake++;
printf("%c is wrong!\nYour Status is: %s\nYou have %i tries left\n", guess,guessStatus,10-mistake);
}
else {
printf("Good job %s!\nYour Status is: %s\nYou have %i tries left\n", name,guessStatus,10-mistake);
}

}

}

问题是当我运行代码并输入任何字母时,程序将“输入”也算作字母。我使用 fflush(stdin) 作为希望,即使我对此一无所知,但没有工作:)问题输出如下:

欢迎来到刽子手

你叫什么名字?约翰你好约翰!猜一个字母:

错了!您的状态是: __________您还剩 9 次尝试猜一个字母:我干得好,约翰!您的状态是:i_______i_您还剩 9 次尝试猜一个字母:

错了!您的状态是:i_______i_您还剩 8 次尝试

我不知道如何处理它。非常感谢帮助。

最佳答案

添加 gethcar();可以读取\n:

#include <stdio.h>            
int main() {
int correct = 0;
int mistake = 0;
int number = 0;
char name[20];
char Word[]={'i','n','f','o','r','m','a','t','i','k'};
char guessStatus[]={'_','_','_','_','_','_','_','_','_','_','\0'};
char guess;
printf("##### Welcome to Hangman #####\nWhat is your Name?\n");
scanf(" %s", name);
getchar(); // add this line
printf("Hello %s!\n", name);
while (mistake <=10 && number<10) {
printf("Guess a letter: ");
guess = getchar();
printf("%c", guess);
correct = 0;
for (int search=0; search<10; search++)
{


if (guess == Word[search]){
number++;
guessStatus[search] = Word[search];
correct = 1;
}
}
if (correct == 0){
mistake++;
printf("%c is wrong!\nYour Status is: %s\nYou have %i tries left\n", guess,guessStatus,10-mistake);
}
else {
printf("Good job %s!\nYour Status is: %s\nYou have %i tries left\n", name,guessStatus,10-mistake);
}
}
}

关于c - 基本 C Hangman 代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28088050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com