将命令行参数与argv[]
进行比较不起作用,可能是因为以下原因:
my_program
,则应运行./my_program arg1 arg2
等命令来传递参数。argv[]
是一个字符指针数组,用于存储命令行参数。在比较参数时,应使用strcmp()
函数,而不是直接比较指针。例如:#include<stdio.h>
#include<string.h>
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Usage: %s<argument>\n", argv[0]);
return 1;
}
if (strcmp(argv[1], "arg1") == 0) {
printf("Argument is 'arg1'\n");
} else if (strcmp(argv[1], "arg2") == 0) {
printf("Argument is 'arg2'\n");
} else {
printf("Unknown argument: %s\n", argv[1]);
}
return 0;
}
argc
的值,以确保至少有一个参数传递给程序。如果以上方法仍无法解决问题,请提供更多关于程序代码和错误信息的详细描述,以便更好地帮助您解决问题。
领取专属 10元无门槛券
手把手带您无忧上云