为什么我的Do While循环终止?

时间:2013-10-15 19:02:46

标签: c

我正在尝试使用多个命令实现服务器。大多数命令到目前为止工作,除了我希望服务器在客户端向quit命令写入参数时向客户端发送警告。 (I.E.退出xyz)并让用户再次尝试而不是退出服务器。不幸的是,服务器退出用户是否键入quit或quit arguments。

bool done = false;

do
{
    if(strcmp(cmd, "quit") == 0)
    {
        if(strcmp(argument, "") != 0)
            strcpy(replyMsg, "504 Command not implemented for that parameter.\n");
        else
        {
            strcpy(replyMsg,"221 Service closing control connection.\n");
            done = true;
        }
    }
    while(strcmp(cmd, "quit") != 0 && done != true);

3 个答案:

答案 0 :(得分:1)

我会用:

...
}
while(!done);

没有必要检查cmd

答案 1 :(得分:0)

你的循环结构似乎在while之前缺少大括号  错了,或者是错字。先检查一下,然后看看正确的代码。

答案 2 :(得分:0)

在while条件下删除cmd上的测试。每当用户选择“退出”时,它的计算结果为false,因此整个表达式由于连接和循环退出而为假