我处于客户端/服务器通信的客户端文件的while循环的顶部。客户端获得用户输入(输入),我需要将它放入cmd和cmd2中以供我的ifs工作。第二次调用strtok()返回null
假设用户输入“get lname”(这对程序来说是一个很好的命令)。 使用下面的代码,CMD = “获得”(耶!),但CMD2 = “(空)”
输入一个字符输入[30] cmd并CMD2是字符*初始化为NULL。
这里有一点帮助吗?谢谢!
/*Until the user exits the program*/
while(cmdNum != 7)
{
printf("\nPlease enter a command: ");
scanf("%30s", input);
cmd = strtok(input, " ");
printf("cmd: %s\n", cmd);
if(strcmp(cmd, "get") == 0)
{
cmd2 = strtok(NULL, "\0");
printf("cmd2: %s\n", cmd2);
pstatus = print(cmd, sockfd);
if(pstatus == 1)
{
printf("Error printing\n");
}
}
else if(strcmp(cmd, "put") == 0)..... etc, etc....
仍然无法做到这一点:( 我把它切换到CMD2 = strtok的(NULL,““); 还是返回(空) – airvector222
@ airvector222我不知道发生了什么错!我已经给我的“答案”增加了一个可运行的例子,但是,正如你所说的那样,它会打印'(null)'。 – ooga
尝试在处理前输出'input',这与'strtok()'无关,和'scanf()'做的所有事情 –