目前我正在用C ++制作一个Hangman游戏。我目前的麻烦是我有一个字符串替换文件中随机选择的单词并用“*”替换它。不幸的是,我的代码并没有用正确的字母/单词替换它们,我已经用断点检查了这个单词是什么。请不要忘记现在的亨曼绘图,除非你有如何在本计划中执行的指示。任何帮助,将不胜感激。 我的文本文件中包含以下单词: 苹果 橙子 汽车 卡车 自行车 猫 狗 蛇 岩石 袜子 蓝色 红色 颜色
我的代码如下:
int wordFill(char guess, string theWordSecret, string&guessWord) //function for determing if you guess a letter contained
{
int i;
int hits = 0; //letter hits within the word
int many = theWordSecret.length();
for (i = 0; i < hits; i++)
{
if (guess == guessWord[i])
return 0;
if (guess == theWordSecret[i])
{
guessWord[i] == guess;
hits++;
}
}
return hits;
}
答案 0 :(得分:1)
对于wordFill函数内的初学者,for循环应该说
for (i = 0; i < many; i++)
而不是
for (i = 0; i < hits; i++)
要替换神秘中的星号,如果用户猜到正确的字母,请添加以下代码
for (int replace = 0; replace < mystery.length(); replace++)
{
if (theWord[replace] == letter)
{
mystery[replace] = letter;
}
}
这应该解决你所有的问题(现在)。
答案 1 :(得分:1)
正如拉菲指出你正在比较i < hits
当然等同于i < 0
另请注意您的代码行:
guessWord[i] == guess;
不是作业:它是比较 - 谨防==
而不是=
。