Visual Studio如何从代码中读取指令?

时间:2018-12-21 07:46:57

标签: visual-c++

您好,这里有StackOverflow社区。在理解Visual Studio如何处理代码给出的“指令”时,我遇到了一个问题。

我编写的代码在运行时给我一个问题。 像这样:

您的猜测是什么? 驴

您的猜测是什么? 驴

您的猜测是:驴

您的猜测是什么? 狗

您的猜测是什么? 狗

您的猜测是:狗。

它可以在其他尝试中正常工作。 但是,如果我要删除“ GetGuess();”,在第38行。一切正常。 但是,令我烦恼的是,第38行上的Getguess不是必需的,因为我现在想到的是它必须先处理Getguess,然后再处理给出的猜测。

谢谢

代码:

#include <iostream>;
#include <string>;

using namespace std;
void PrintIntro();
void play_game();
string GetGuess();


// entry point for out application
int main()
{
    PrintIntro();


    play_game();


}

//intro game
void PrintIntro()
{
    constexpr int WORD_LENGTH = 5;
    cout << "welcome to bulls and cows\n";
    cout << "can you guess the " << WORD_LENGTH << " letters word?\n";
    return ;
}


void play_game()
{
    // loop for number of turns asking for guesses
    constexpr int number_of_turn = 5;
    for (int count = 1; count <= number_of_turn; count++)
    {

        GetGuess();
        string guess = GetGuess();
        cout << "your guess was:" << guess << endl;

    }
}


//gut guess from player
string GetGuess()
{
    // ask for a guess
    cout << "whats your guess?\n";
    string guess = "";
    getline(cin, guess);


    return guess;
}

1 个答案:

答案 0 :(得分:0)

一条建议:运行代码时,请设置断点,特别是如果您想知道代码的运行方式。

“它在替代尝试中正常工作。但是,如果我要删除'GetGuess();',在第38行上,一切工作都很好。但是,令我烦恼的是第38行上的Getguess不是必需的,因为我现在的想法是必须先处理Getguess,然后再处理猜测。” >

要回答您的问题,首先您必须知道,当您调用“字符串猜测= GetGuess();”时编译器已经获取了返回值并将其存储到“ guess”(在这种情况下,该函数返回guess),因此您不必再添加GetGuess()了(这是多余的)。您认为编译器需要“首先处理Getguess”是不正确的,因为“字符串猜测= GetGuess();”已经在处理/获取返回值。

此外,我认为在int main()之前初始化和声明所有函数是一个好习惯,但是,这取决于组织所有代码函数的方式。