Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Do while循环一次显示2个提示,请回复_C++_Codeblocks_Do While - Fatal编程技术网

C++ Do while循环一次显示2个提示,请回复

C++ Do while循环一次显示2个提示,请回复,c++,codeblocks,do-while,C++,Codeblocks,Do While,我对编程和尝试一个你需要猜一个视频游戏角色的名字的程序很陌生,如果你猜不到你会输,那么只有3次猜测。我在这里使用了一个do while循环,这样我可以一次又一次地执行它。。。这里的问题是,每次循环再次启动时,它都会显示2次提示,尽管每次猜测都会显示1次提示,但它会显示2次提示。你能帮帮我吗?也许我把算法弄错了,谢谢 #include <iostream> using namespace std; int main() { char rerun_option;

我对编程和尝试一个你需要猜一个视频游戏角色的名字的程序很陌生,如果你猜不到你会输,那么只有3次猜测。我在这里使用了一个do while循环,这样我可以一次又一次地执行它。。。这里的问题是,每次循环再次启动时,它都会显示2次提示,尽管每次猜测都会显示1次提示,但它会显示2次提示。你能帮帮我吗?也许我把算法弄错了,谢谢

#include <iostream>

using namespace std;

int main()
{

    char rerun_option;

    do {
        string secretWord = "Arthur Morgan";
        string guess;
        int guessCount = 0;
        int guessLimit = 3;
        bool outofGuesses = false;

        while (secretWord != guess && !outofGuesses) {
            if (guessCount < guessLimit) {
                cout << "Enter video game character name guess: ";
                getline(cin, guess);
                guessCount++;
            }
            else {
                outofGuesses = true;
            }
        }
        if (outofGuesses) {
            cout << "You Lose!" << endl;
            outofGuesses = false;
        }
        else {
            cout << "You Win!" << endl;
        }

        cout << "Try Again?(Y/N) ";
        cin >> rerun_option;
    } while (rerun_option == 'Y' || rerun_option == 'y');

    return 0;
}
#包括
使用名称空间std;
int main()
{
字符重新运行选项;
做{
字符串secretWord=“Arthur Morgan”;
字符串猜测;
int猜测计数=0;
int猜限=3;
bool-outofguesss=false;
while(secretWord!=猜和猜出格言){
if(猜测计数<猜测限制){

coutEDIT:stackoverflow.com/a/21567292/4645334是您的问题的一个很好的例子,解释了您遇到问题的原因,并解释了如何解决问题。我在下面提供了一个代码的工作示例,以及一个链接,指向有关cin.ignore()的使用和描述的更多信息

#包括
使用名称空间std;
int main()
{
字符重新运行选项;
做{
字符串secretWord=“Arthur Morgan”;
字符串猜测;
int猜测计数=0;
int猜限=3;
bool-outofguesss=false;
while(secretWord!=猜和猜出格言){
if(猜测计数<猜测限制){

coutEDIT:stackoverflow.com/a/21567292/4645334是您的问题的一个很好的例子,解释了您遇到问题的原因,并解释了如何解决问题。我在下面提供了一个代码的工作示例,以及一个链接,指向有关cin.ignore()的使用和描述的更多信息

#包括
使用名称空间std;
int main()
{
字符重新运行选项;
做{
字符串secretWord=“Arthur Morgan”;
字符串猜测;
int猜测计数=0;
int猜限=3;
bool-outofguesss=false;
while(secretWord!=猜和猜出格言){
if(猜测计数<猜测限制){

你能试着用调试器单步调试代码吗?我不知道你在说什么抱歉。我还是三周前才开始学习。你能给我解释一下吗?在获得用户输入之前你需要刷新。只需阅读它就可以描述你的问题并提供一些解决方案。@NullPointer不,你没有。你试过单步调试吗呃,你的调试器代码?我不知道你在说什么抱歉。我还是三周前才开始学习。你能给我解释一下吗?在获得用户输入之前,你需要刷新。只需阅读它就可以描述你的问题并提供一些解决方案。@NullPointer不,你不知道。不知道为什么这会被否决,因为它修复了OPs问题并提供了他们可以从何处了解其修复原因的参考。由于两个原因,我投了反对票。被骗者的答案有很好的解释和解决方案。这个问题不应该被回答,而是作为重复问题关闭。如果你想回答,请在答案中描述问题。不要只是添加链接。解释为什么以及何时出现此问题发生,以及如何解决。@ThomasSablik似乎不是投反对票的好理由?不违反任何规则或行为,所以这只是你个人的偏好。我见过很多答案都有更正代码,没有任何解释就没有任何反对票。你的答案隐藏了一个更好的答案。这就是投反对票的原因对我来说。一个问题可以标记为重复。你不必用重复的链接来回答。@ThomasSablik“一个更好的答案”只是在争论语义和个人偏好。更好的是在用户的问题和目标的背景下。不知道为什么这被否决,因为它修复了OPs问题,并提供了他们可以从何处了解其修复原因的参考。我之所以否决是因为两个原因。被骗者的答案有很好的解释和解决方案。这个问题不应该被回答,但作为副本关闭。如果你想回答,请在回答中描述问题。不要只是添加链接。解释问题发生的原因和时间以及如何解决。@ThomasSablik似乎不是否决投票的好理由?不违反任何规则或行为,所以这只是你个人的偏好这样做。我看到很多答案都带有更正代码,没有任何解释,没有任何反对票。你的答案隐藏了一个更好的答案。这就是我反对投票的原因。一个问题可以标记为重复。你不必回答重复的链接。@ThomasSablik“一个更好的答案”只是争论语义和个人偏好。更好的是在用户的问题和目标的上下文中。
#include <iostream>

using namespace std;

int main()
{

    char rerun_option;

    do {
        string secretWord = "Arthur Morgan";
        string guess;
        int guessCount = 0;
        int guessLimit = 3;
        bool outofGuesses = false;

        while (secretWord != guess && !outofGuesses) {
            if (guessCount < guessLimit) {
                cout << "Enter video game character name guess: ";
                cin.ignore(); // <-- ADD THIS LINE RIGHT HERE
                getline(cin, guess);
                guessCount++;
            }
            else {
                outofGuesses = true;
            }
        }
        if (outofGuesses) {
            cout << "You Lose!" << endl;
            outofGuesses = false;
        }
        else {
            cout << "You Win!" << endl;
        }

        cout << "Try Again?(Y/N) ";
        cin >> rerun_option;
    } while (rerun_option == 'Y' || rerun_option == 'y');

    return 0;
}