我正在用C ++编写一个简单的文本游戏。用户可以选择左房间或右房间。我确实把它设置为一个int语句:为左边输入1,为右边输入2。现在我想让用户左转进入左侧房间,右侧进入正确的房间。
我用char替换了int,但是我收到了一个错误。
<html>
<head>
<style type="text/css">
body { font-family: sans-serif; }
#confirmBox
{
display: none;
background-color: #eee;
border-radius: 5px;
border: 1px solid #aaa;
position: fixed;
width: 300px;
left: 50%;
margin-left: -150px;
padding: 6px 8px 8px;
box-sizing: border-box;
text-align: center;
}
#confirmBox .button {
background-color: #ccc;
display: inline-block;
border-radius: 3px;
border: 1px solid #aaa;
padding: 2px;
text-align: center;
width: 80px;
cursor: pointer;
}
#confirmBox .button:hover
{
background-color: #ddd;
}
#confirmBox .message
{
text-align: left;
margin-bottom: 8px;
}
</style>
<script language="javascript" src="scripts/jquery-latest.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"/>
<script type="text/javascript">
function doConfirm(msg, yesFn, noFn) {
alert("Inside");
var confirmBox = $("#confirmBox");
alert("confirmBox");
confirmBox.find(".message").text(msg);
confirmBox.find(".yes,.no").unbind().click(function () {
confirmBox.hide();
});
confirmBox.find(".yes").click(yesFn);
confirmBox.find(".no").click(noFn);
confirmBox.show();
}
function isAnchorTagClicked(){
alert("yes");
doConfirm("Are you sure?", function yes()
{
alert("Yes Clicked");
}, function no()
{
// do nothing
});
}
</script>
</head>
<body>
<div id="confirmBox">
<div class="message"></div>
<span class="button yes">Yes</span>
<span class="button no">No</span>
</div>
<button onclick="isAnchorTagClicked()">Done</button>
</body>
<html>
错误:指针和整数之间的比较
答案 0 :(得分:0)
char
代表单个字符 - 您需要的是一个字符串(多个字符)。
当您在decision
中实际拥有用户值时,您需要将其与字符串"left"
进行比较,而不仅仅是编译器尝试将其解释为符号的left
(比如变量名。)
总而言之:
#include <iostream>
#include <string>
using namespace std;
int main() {
string decision;
cin >> decision;
if (decision == "left") {
cout << "went left" << endl;
}
return 0;
}
答案 1 :(得分:0)
最简单的方法是使用strcmp:
#include <iostream>
int main()
{
char decision[50] = "";
std::cout << "Decision: ";
std::cin.get(decision, 50, '\n');
if( !(strcmp(decision, "left")) )
std::cout << "left";
else
if( !(strcmp(decision, "right")) )
std::cout << "right";
else
std::cout << "bad input!" << std::endl;
std::cout << std::endl;
return 0;
}