0
#include <iostream>
#include <random>
#include <cstdlib>
#include <time.h>

using namespace std;

int getComputerChoice();
int getPlayerChoice();
string convertToString(int);

int main()
{
    int computerChoice, playerChoice;
    string choiceOne, choiceTwo;

    cout << "ROCK PAPER SCISSORS MENU\n"
         << "-------------------------\n"
         << "p) Play Game\n"
         << "q) Quit" << endl;

    srand (time(NULL));

    computerChoice = getComputerChoice();
    playerChoice = getPlayerChoice();

    cout << "You chose: " << convertToString(playerChoice) << endl;
    cout << "The computer chose: " << convertToString(computerChoice) << endl;

    system("PAUSE");
    return 0;
}

int getComputerChoice()
{
    int choiceComp = (rand() % 3) + 1;
    return choiceComp;
}

int getPlayerChoice()
{
    int choicePlayer;

    do {
    cout << "Rock, Paper or Scissors?\n"
         << "1) Rock\n"
         << "2) Paper\n"
         << "3) Scissors\n"
         << "Please enter your choice: " << endl;
    cin >> choicePlayer;
    } while (choicePlayer < 1 || choicePlayer > 3);

    return choicePlayer;
}

string convertToString(int choiceAsInt)
{
    string choiceName;

    if (choiceAsInt == 1)
    {
        choiceName = "Rock";
    }
    else if (choiceAsInt == 2)
    {
        choiceName = "Paper";
    }
    else choiceName = "Scissors";

    return choiceName;
}

到目前为止,这是我的代码。我想要做的是使用一个函数将用户的输入(它是一个 int)转换为一个用于打印的字符串。谁能解释为什么我当前的代码导致编译器错误?这是错误告诉我的内容:Error 2 error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)为了澄清起见,这就是讲师希望我们创建程序的方式。我们不允许简单地将用户的输入作为字符串接受(稍后在程序中我们必须对值进行比较,但我们还不知道如何比较字符串)。提前致谢。

4

3 回答 3

3
#include<string>

In code:do following changes

 cout << "You chose: "<<convertToString(playerChoice).c_str() << endl;
 cout << "The computer chose: "<<convertToString(computerChoice).c_str()<< endl;
于 2013-10-19T07:08:46.323 回答
1

您需要添加#include <string>

于 2013-10-19T05:12:57.253 回答
0

cout << "你选择了:" << convertToString(playerChoice) << endl;

convertToString(playerChoice) 返回一个字符串类型,如果你不包含你不能 cout<<(string type)

于 2013-10-19T07:01:59.660 回答