显示错误消息?

时间:2016-02-03 16:25:25

标签: c

我的程序基本上是当用户输入一个无法识别的命令时,它假设显示错误信息,但是当用户输入有效命令和无效命令时,它仍会显示错误信息。

int main(){

    char command[20];

    printf("Enter either add, sub, mult, div, or EXIT:\n");
    scanf("%5s", command);


    if(strcmp(command, "EXIT") || strcmp(command, "add" ) ||strcmp(command, "sub")|| strcmp(command,"div") || strcmp(command,"mult") != 0){
        printf("Warning either enter the following commands\n");

    }
    else
    {
        printf("Welcome\n");
        //function..
    }
    return 0;   
}

我也是C的新手,我正在试验我不确定这是否是实现此功能的正确方法。

2 个答案:

答案 0 :(得分:4)

通过做:

if (strcmp || strcmp || strcmp || strcmp != 0)

您似乎试图同时检查所有不同的结果,而不是0。

这不是C的工作方式。
您必须单独检查每个值

if (strcmp(command, "EXIT") &&
    strcmp(command, "add" ) &&
    strcmp(command, "sub" ) &&
    strcmp(command, "div" ) &&
    strcmp(command, "mult"))
 { /* Show Warning message */ }

<强>翻译
如果字符串 不是 "EXIT"且不是"add",也不是"sub" ....那么字符串不是任何已知的命令;因此,请出示警告。

答案 1 :(得分:0)

如果两个字符串匹配,strcmp函数将返回0。因此,您的条件将始终评估为true,因为只有一个字符串可以与某个输入匹配。