gpt4 book ai didi

C getchar() 刽子手游戏

转载 作者:太空宇宙 更新时间:2023-11-04 08:06:35 24 4
gpt4 key购买 nike

我接到了一项家庭作业,任务是创建一个简单的刽子手游戏。下面是我的代码。我目前正在尝试将 if else 与 getchar() 一起使用,要求用户输入一个小写字母,看看它是否与他们应该猜测的单词中的某个字母相匹配。根据我非常有限的经验,我拥有的代码应该可以工作,当我逐步执行该程序时,它似乎应该可以正常运行,但是当我实际运行该程序时,它似乎跳过了第二个 getchar()。有人有任何建议或帮助吗?

#include "stdio.h"
#include "math.h"

int main(void) {
int(a);
int(b);
float(x);
float(c);
float(e);

int word[4] = {116, 101, 115, 116};
int guess[4];

c == 0;
a == 0;
b == 0;

printf("Welcome to Hangman\n");
printf("Input a word--one lower case letter at a time\n");
printf("Enter Guess: ");

x = getchar();

if (x > 122) {
printf(" Error, character must be a lowercase letter");
} else
if (x < 97) {
printf(" Error, character must be a lowercase letter");
} else
if (x == 116) {
printf("t is correct\n");

printf("%d", word[0]);
printf(" _");
printf(" _");
printf(" %d ", word[3]);

e = getchar();

if (e == 101) {
printf("e is correct\n");

printf("%d", word[0]);
printf(" %d", word[1]);
printf(" _");
printf(" %d ", word[3]);
} else
if (e == 115) {
printf("s is correct\n");

printf("%d", word[0]);
printf(" _");
printf(" %d", word[2]);
printf(" %d", word[0]);
} else {
printf(" You guessed wrong");
}
} else
if (x == 101) {
printf("e is correct\n");
printf("_");
printf(" %d", word[1]);
printf(" _");
printf(" _ ");
} else
if (x == 115) {
printf("s is correct\n");

printf("_");
printf(" _");
printf(" %d", word[2]);
printf(" _ ");
} else {
printf(" You guessed wrong");
}
}

最佳答案

当你输入一个你想要的字符时getchar阅读,你用 Enter 键结束吧? Enter 键将放入stdin 的输入缓冲区(getchar 从中读取)作为一个换行符,'\n'

这意味着对于您提供的每个输入,您实际上输入了两个 个字符。

您需要跳过该换行符。这可以通过在第一个之后添加第二个 getchar 来轻松完成,例如

x = getchar();
getchar(); // Read the newline from the Enter key

关于C getchar() 刽子手游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42433901/

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