如何从文件中提取一个词并将其存储在一个变量中? C++
我在C++控制台应用程序中制作了一个简单的Rock,Paper,Scissors游戏。到目前为止,游戏效果很好..直到我试图从一个文件中存储一个单词,在一个变量中,然后尝试在IF语句中使用该变量。如何从文件中提取一个词并将其存储在一个变量中? C++
下面是我如何从文件中将我的单词存储在变量中。
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;
}
}
输出应该是:
电脑选择了摇滚......你赢了!
如果玩家选择纸张为例。 相反,我得到这个错误信息
严重性代码说明项目文件的线路抑制状态 错误C2678二进制“==”:没有操作员发现这需要类型的左侧操作数“的std :: string”(或没有可接受的转换)
任何帮助或指导,将是伟大的!提前谢谢了。
您的comp_selection
定义为std::string
,但您将其与char
('r'
等)进行比较。你应该把它比对另一个字符串("r"
),或只是重新定义comp_selection
是一个性格:
char comp_selection;
char player_selection;
在C++中,单个字符由单引号('c'
),而字符的字符串用双引号表示表示("full string"
)。
该方法很好,但是,当我输出消息,与char方法,输出只读取字符串的第一个字母,而不是整个字符串。我想要输出整个字符串。 – jlw8
到目前为止,您一直在享受cin >>
重载承认它正在写入char
。从文件中读取时,显然使用了一个字符串。这很好,除了现在编译器抱怨说它不知道如何比较string
和char
。总之,你的类型不匹配。
可以比较comp_selection的只有第一个字符(comp_selection [0])
if (comp_selection[0] =='r' || comp_selection[0] == 'R')
{
这是不是最好的解决方案,但它需要最少的代码改变...
我刚刚意识到我的代码完成了它打算做的事!通过将我的 comp_selection
设置为char
,就像这里建议的人一样,我可以手动输入计算机使用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;
}
}
看到错误!找不到操作符找到类型为“std :: string”的左手操作数。你正在比较字符与std :: string –