Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

tugabit

problema simples com argv

Mensagens Recomendadas

tugabit

Boas,

estou aqui com um pequeno problema, tem a ver com o argv e a comparar o mesmo a uma string constante

int main(int argc, char **argv[]) { // se argv[1] = admin vai para a interface de administracao
if (argv[1] == "admin") { //nunca faz isto, nao sei porque, eu meto ./nomedoprograma admin e nunca faz
	funcionarios();
} else if (argc == 1) {
	//continua
} else {
	printf("|%s| - %d", argv[1], argc); //ver o que errei
	printf("Erro!\nPrograma mal iniciado, para ir para a interface de Funcionarios use a flag admin\nPara ir para a interface de cliente nao use flags\n");
	return 1; //retorna uma execucao nao esperada
}
        //codigo do programa aqui [sub][/sub]
        return 0;
}

não faço ideia onde está o problema, visto que não dá erros de compilação e os tipos são os mesmos

talvez seja por programar em linguagens que requerem menos atenção a este tipo de pormenores, que não esteja a ver o problema :\

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
IceBrain

Para mais informações, a Wiki tem uma página decente sobre strings em C: http://wiki.portugal-a-programar.org/c:strings

By the way, devias verificar primeiro se o argc é igual a 2 antes de usares o valor de argv[1], pois se o utilizador não tiver introduzido nenhum argumento, a memória na posição argv[1] não é válida, e pode até dar um Segmentation Fault (acesso a uma posição de memória a que o processo não tem permissões).

Podes fazer simplesmente "if ( argv >= 2 && strcmp(argv[1], "admin") == 0)", visto que se a primeira condição falhar, a segunda já não é verificada.


❝The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.❞- John Carmack on software patents

A list  of command line apps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.