1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

C -> strings/argv[]...

Discussão em 'Programação' iniciada por X3minater, 26 de Dezembro de 2007. (Respostas: 4; Visualizações: 669)

  1. X3minater

    X3minater Power Member

    Boas

    Tenho de fazer um programa que leia da linha de comandos duas opções ("-x" ou "-y"). Ao ler "-x" vai aparecer um menu...ao ler "-y" vai aparecer um menu diferente...(se não ler nem -x nem -y termina o programa). Exemplo: "./prog -x" ou "./prog -y"
    Eu tentei fazer destas maneiras:

    if (strcmp(argv[1],"-x")==0) ...
    if (strcmp(argv[1],"-y")==0) ...

    e

    if (strchr(argv[1],'x')) ...
    if (strchr(argv[1],'y')) ...

    Acho que com a função strchr não dá porque se eu fizesse: "./prog fixe" ele mostrava o menu à mesma...

    Se alguém soubesse uma maneira de resolver isto agradecia que respondessem.
    PS: Estou a usar ubuntu.
     
  2. Da primeira maneira que tens não funciona?

    De qualquer forma convém verificares também o argc.
     
  3. Idiroft

    Idiroft I'm cool cuz I Fold

    Estou neste momento a fazer um trabalho que tem uma coisa igual a essa e o if(strcmp(argv[1], "-x")==0) funciona em Ubuntu.

    Não estou a ver qual seja o problema.
     
  4. napalm

    napalm Power Member

    Código:
    if (strchr(*(argv[1]),'x')) ...
    if (strchr(*(argv[1]),'y')) ...
    Nota a diferença. Dantes, estavas a comparar um endereço de memória (um int) com um char.
     
  5. X3minater

    X3minater Power Member

    Sim, para o argc já tinha feito outra condição thanks!
    Aínda não tinha experimentado com o strcmp, :D, era só para ter a certeza! Mas acho que tá bom agora! ;)

    Thanks
     

Partilhar esta Página