尝试在 C 中打印字符串变量时编译器错误

Compiler error while trying to print a string variable in C

本文关键字:变量 编译器 错误 字符串 打印      更新时间:2023-10-16
#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 MENUn"
         << "-------------------------n"
         << "p) Play Gamen"
         << "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) Rockn"
         << "2) Papern"
         << "3) Scissorsn"
         << "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) 为了澄清起见,这就是讲师希望我们创建程序的方式。我们不允许简单地接受用户的输入作为字符串(稍后在程序中,我们必须对值进行比较,我们还不知道如何比较字符串)。提前谢谢。

#include<string>
In code:do following changes
 cout << "You chose: "<<convertToString(playerChoice).c_str() << endl;
 cout << "The computer chose: "<<convertToString(computerChoice).c_str()<< endl;
您需要

添加#include <string>

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

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