微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用main参数向量

如何解决使用main参数向量

我正在尝试使用main()参数向量来获取三个选项,它输出所有三个结果。 为什么它行不通?

#include <ctype.h>
#include <stdio.h>
void output_1(char *str);
void output_2(char *str);
void output_3(char *str);
int main(int argc,char *argv[])
{
    char str[40];

    gets(str);
    
    if (argv[1]="-p")
    {
        output_1(str);
    }
    if (argv[1]="-u")
    {
        output_2(str);
    }
     if (argv[1]="-l")
    {
        output_3(str);
    }
}

output_1 / 2/3的定义无关紧要。

解决方法

C字符串比较使用strcmp
这是一个有关如何测试命令行参数并确保解析可靠的代码示例(需要检查参数数量)。但是,解析参数最好使用getopt功能来完成。

#include <stdio.h>
#include <string.h>
int main(int argc,char *argv[])
{

    if (argc != 2)
    {
        printf("missing arguments");
        return -1;
    }   
    if (!strcmp(argv[1],"-p"))
    {
       printf("-p");
    }
    else
    {
         printf("unknwon arg %s",argv[1]);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。