当前位置: 首页 > 知识库问答 >
问题:

为什么当用户输入不正确的小写字母时代码不循环

秦博达
2023-03-14

我正在编写一个代码,生成一个随机数,然后将这个数字分配给字符串字母中的一个字母,然后用户必须猜测该字母。

我正在尝试循环问题“Enter one lowercase letter”:如果用户输入的字母与randomletter不匹配,但同时我必须确保该字母都是小写的(这是我们在课堂上没有学到的,但经过搜索我找到了一个解决方案,希望这是正确的方法)。

如果用户输入不正确的低字母,则while循环结束。当letterguessrandomletter匹配时,它确实起作用。

我要做的另一件事是,如果用户输入了一个不正确的低字母,那么它需要给出反馈,正确的字母在输入的字母之前或之后。

#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
#include <algorithm>

using namespace std;

//function prototype
void displayNumber(int);

int main()
{
    string letters = "abcdefghijklmnopqrstuvwxyz";
    string randomLetter;
    string letterGuess = "";
    string wordLocation = " ";
    int randomNumber = 0;

    //display random number then assign a random number to letter string
    displayNumber(randomNumber);
    randomLetter = letters[randomNumber];

    while (letterGuess.length() != 1) {
        //ask user to enter a lowercase letter and determine if it matches the random letter
        cout << "Enter one lowercase letter: ";
        getline(cin, letterGuess);

        if (all_of(letterGuess.begin(), letterGuess.end(), &::isupper)) {
            cout << "letter must be lowercase.";
        }
        else if (randomLetter.find(letterGuess, 0) == -1) {
            cout << "\nYou guessed the correct letter.";
        }
        else {
            wordLocation.insert(0, letters);
        } //end if
    } //end while
    return 0;
} //end of main function

void displayNumber(int num)
{
    srand(time(0));
    num = (rand() % 26) + 1;
    cout << num << endl
         << endl;
} // end of displayNumber function

共有1个答案

邓正谊
2023-03-14

你的问题就在这里:

while (letterGuess.length() != 1)

由于字符串lettergues=“”;的大小/长度为0。

 类似资料:
  • 是我最喜欢的编辑器,我有一个代码格式化问题。这是我的代码: 当我使用选项shiftF格式化它时,它给出了以下信息: 显然,这是不正确的。 version-,并且不安装任何代码格式扩展。 所以,我不想安装任何代码格式化扩展,是否有任何配置可以正确执行此操作? --更新-- 抱歉。我检查了我的扩展安装,找到了扩展。但是为什么我使用vscode代码格式,它使用?

  • 大家好,我希望这个程序能够对大写字母进行编码,而不使用其他字符,并通过输出传递它们。例如“你好,世界!”运行程序“URYY\d_YQ!”后应变为我得到的是Yluhreylbowjwboerylqdxk而不是“URYY\dyq!”这就是我应该得到的。如果有人能让我知道我做错了什么,我将不胜感激。提前谢谢。

  • 问题内容: 我正在做一个游戏,但是每当我运行第二个jFrame时,我都必须调整它的大小才能获得第二个jFrame的正确大小,有人知道为什么吗? 这是第一个jFrame类中的方法,它将打开第二个类: 这是第二个jFrame类,我必须重新调整它的大小才能正确显示山雀: 问题答案: 我读得很快,正在寻找一种特定的方法。 该方法是: JFrame中的此方法可能非常有用,但也很难处理,您需要非常了解如何设置

  • 我添加了一个while循环,这样如果用户输入无效值,代码将重新提示用户输入有效值。但是当用户输入无效值时,代码会进入无限循环。任何帮助都将不胜感激!!

  • 本文向大家介绍js实现用户输入的小写字母自动转大写字母的方法,包括了js实现用户输入的小写字母自动转大写字母的方法的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇js实现用户输入的小写字母自动转大写字母的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我需要编写一个程序,要求输入整数和循环,直到输入为负整数,然后程序结束。此外,循环需要计算正整数项的总数,并将所有项相加。代码的计数部分似乎工作正常,但我获取所有条目总和的方法不起作用。 我在代码中尝试的是将total=total输入放在循环的末尾,但这在测试时并没有给出正确的总和。 此外,我的类型安全块只适用于第一次进入;如果我在整数后输入一个字母,程序就会崩溃。这不应该在每个条目的开头回到类型