我正在学习C ++,我才刚刚开始。我们的教授希望我们编写一个“游戏”,该游戏根据用户输入(cin)使用不同的结果。如果您敲门,将会发生第一种情况。如果您不敲门就穿过门,将会发生两种情况。但是,当我在repl.it中测试代码时,我的if语句不会显示结果。有人可以看一下我的代码并帮助我找出原因吗?
#include <iostream>
using namespace std;
int main() {
int walkOrKnock;
cout << "Type in 'w' to walk through the door or 'k' to knock: ";
cin >> walkOrKnock;
cout << endl;
if (walkOrKnock) {
cout << "You walked through the door.";
}
}
答案 0 :(得分:3)
int walkOrKnock;
问题是您要求用户键入一个字符(w或k),但您的变量需要一个整数。
要解决问题,可以将WalkorKnock变量的类型更改为char
或string
#include <iostream>
int main() {
std::string walkOrKnock;
std::cout << "Type in 'w' to walk through the door or 'k' to knock: ";
std::cin >> walkOrKnock;
std::cout << std::endl;
if (walkOrKnock == "w") {
std::cout << "You walked through the door.";
}
}
答案 1 :(得分:2)
尝试一下
int main() {
char walkOrKnock;
cout << "Type in 'w' to walk through the door or 'k' to knock: ";
cin >> walkOrKnock;
cout << endl;
if (walkOrKnock == 'w') {
cout << "You walked through the door.";
}
}
您的代码中有两个错误。首先,C ++中的所有内容都具有 type 。由于您的作业要求输入一个字符(w或k),因此正确的类型是char
,而不是int
(int
是整数)。
第二个错误是您没有对变量使用正确的测试
if (walkOrKnock) {
测试walkOrKnock
是否为真(另一个情况为“真”)。但是,您想测试walkOrKnock
是否等于'w'
,它的代码是
if (walkOrKnock == 'w') {
顺便说一下,好的变量名。