#include <stdio.h>
#include <stdlib.h>
//CALLBACKS
void infoCallback(){
system("cheese");
}
void wgetCallback(char *website){
if(website == NULL)
printf("\nSITIO WEB NO INGRESADO!\n");
else{
printf("%s \n", website);
system("echo making wget success");
}
}
int main(int argc, char *argv[]){
printf("\tAUTO-BASH\n");
printf("%s \n", argv[1]);
if(argv[1] == "-w"){
wgetCallback(argv[2]);
}
else if(argv[1] == "-i"){
infoCallback();
}
else{
printf("\nsos un noob\n");
}
}
它不会做我想要的....如果我写-w,它去别的。 ... 我想打一个开关(任何类型){ 案“??”: 但我不知道为什么我不能这样做。字符串比较与==
检查的argv的值[1],也许你需要将它转换为字符串 – Nezir
'“-w”'是一个常数。 'argv [1]'是一个变量。指向变量的指针并不等于指向常量的指针,因为它们不可能指向相同的东西,因为某些变量既不能是变量也不能是常量。 –
@David Schwartz技术上不同意“不等于”。尽管不适用于'argv []',请考虑'char * s =“-w”;如果(s ==“-w”)...'。在这种情况下,比较可能是正确的,因为代码可能会将''-w''折叠到相同的地址 - 否则它可能不会。 IAC,不是一个好的编程习惯。 – chux