过去几个小时我在这个小小的代码上疯了。我试图从用户那里获得完整的字符串输入,但它只打印他们输入的第一个单词,例如:如果他们键入' 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;
}
答案 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,依此类推。
所以试试这个。 但我不确定