#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)
为了澄清起见,这就是讲师希望我们创建程序的方式。我们不允许简单地将用户的输入作为字符串接受(稍后在程序中我们必须对值进行比较,但我们还不知道如何比较字符串)。提前致谢。