调用char以允许用户输入选项时出错

时间:2016-09-19 12:25:08

标签: c++

我正在用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>
  

错误:指针和整数之间的比较

2 个答案:

答案 0 :(得分:0)

  1. char代表单个字符 - 您需要的是一个字符串(多个字符)。

  2. 当您在decision中实际拥有用户值时,您需要将其与字符串"left"进行比较,而不仅仅是编译器尝试将其解释为符号的left(比如变量名。)

  3. 总而言之:

    #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;
}
  • 你也应该在小写和大写之间没有区别,因为如果用户输入&#34;左&#34;相反&#34;左&#34;然后它不会工作