用户输入参数问题

时间:2015-11-29 23:42:36

标签: c++ c

过去几个小时我在这个小小的代码上疯了。我试图从用户那里获得完整的字符串输入,但它只打印他们输入的第一个单词,例如:如果他们键入' REPORT HELLO TEST',只有'你好' HELLO&# 39;显示,没有别的。所以我想我会把它发布在这里,看看会发生什么。

static void ns_cmd_report(sourceinfo_t *si, int parc, char *parv[])
{
    myuser_t *mu;
    mynick_t *mn = NULL;
    hook_user_req_t req;


    char *reason = parv[0];


    if (!reason){

        command_fail(si, fault_needmoreparams, STR_INSUFFICIENT_PARAMS,     "REPORT");
        command_fail(si, fault_needmoreparams, "Syntax: REPORT <Reason>");
        return;
    }

    logcommand(si, CMDLOG_REGISTER, "(BUG REPORT) - Message: \2%s\2", reason);

    command_success_nodata(si, "Your bug report has been successfully sent.");
    return;
}

1 个答案:

答案 0 :(得分:-3)

我认为你的问题在于理解 static void ns_cmd_report(sourceinfo_t * si,int parc,char * parv [])

如果这像java一样,我从不在c ++中使用它, (int parc)是你的参数计数器,所以当你调用它时,检查它是否不是1。 和char * parv []是您的字符参数值数组,您应该在parv [1]中的parv [0]秒中输入第一个arg,依此类推。

所以试试这个。 但我不确定