如何从文件中取出一个单词并将其存储在变量中? C ++

时间:2017-10-16 19:35:46

标签: c++ string variables

我在C ++控制台应用程序中制作了一个简单的Rock,Paper,Scissors游戏。到目前为止,游戏工作得很好..直到我尝试在文件中存储一个单词,在变量中,然后尝试在IF语句中使用该变量。

以下是我如何将文件存储在变量中。

string comp_selection;
char player_selection;

这是代码的一部分,我试图让它发挥作用。

cout << "Rock, Paper, or Scissors?";
cin >> player_selection;

if (comp_selection =='r' || comp_selection == 'R')
{
    if (player_selection == 'r' || player_selection == 'R')
    {
        cout << "Computer chose " << comp_selection << "... It's a draw!" << std::endl;
    }
    else if (player_selection == 'p' || player_selection == 'P')
    {
        cout << "Computer chose " << comp_selection << "... You win!" << std::endl;
    }
    else if (player_selection == 's' || player_selection == 'S')
    {
        cout << "Computer chose " << comp_selection << "... You lose!" << std::endl;
    }
}

输出应为:

  

电脑选择摇滚......你赢了!

如果玩家选择Paper,例如。 相反,我收到此错误消息

  

严重级代码描述项目文件行抑制状态   错误C2678二进制&#39; ==&#39;:未找到哪个运算符采用类型&#39; std :: string&#39;的左手操作数(或者没有可接受的转换)

任何帮助或指导都会很棒!提前谢谢了。

4 个答案:

答案 0 :(得分:0)

您的comp_selection被定义为std::string,但您将其与char'r'等)进行比较。您应该将其与另一个字符串("r")进行比较,或者只是将comp_selection重新定义为一个字符:

char comp_selection;
char player_selection;

在C ++中,单个字符用单引号('c')表示,而字符串用双引号("full string")表示。

答案 1 :(得分:0)

到目前为止,您一直在享受yo jhipster重载,意识到它正在写入cin >>。从文件中读取时,您显然使用了一个字符串。这很好,除了现在编译器抱怨它不知道如何比较charstring。简而言之,您的类型不匹配。

答案 2 :(得分:0)

您只能比较comp_selection的第一个字符(comp_selection [0])

if (comp_selection[0] =='r' || comp_selection[0] == 'R')
{

这不是最佳解决方案,但需要最少的代码更改......

答案 3 :(得分:-1)

我刚刚意识到我的代码完成了它的目的!通过设置我的 comp_selectionchar,就像此处建议的人一样,我可以使用IF语句手动输入计算机选择的内容。

例如:

if (comp_selection == 's' || comp_selection == 'S')
{
    if (player_selection == 'r' || player_selection == 'R')
    {
        cout << "Computer chose Scissors... You win!" << std::endl;
    }
    else if (player_selection == 'p' || player_selection == 'P')
    {
        cout << "Computer chose Scissors... You lose!" << std::endl;
    }
    else if (player_selection == 's' || player_selection == 'S')
    {
        cout << "Computer chose Scissors... It's a draw!" << std::endl;
    }
}