如何解决使用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 举报,一经查实,本站将立刻删除。