• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

André Aparicio

int argc, char *argv[]

14 mensagens neste tópico

Para que serve isto quando se inicia a função main?

int main(int argc, char *argv[])

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está relacionado com a passagem de argumentos ao programa, do género:

programa.exe arg1 arg2

argc - número de argumentos

argv - array com os argumentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só para complementar:

argv[0] = nome do programa a correr

argv[1] = primeiro argumento

argv[2] = segundo argumento

argv[n] = n argumento

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que fixe, já posso fazer programas com argumentos.  :biggrin:

Mas como é que nunca vi informação sobre isto em tutoriais de C???  :dontgetit:

Já fiz um pequeno programa:

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("Numero de argumentos = %d\n", argc);
    for(int num = 0; num < argc; num++)
    {
       printf("%d - %s\n",num, argv[num]);
    }
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No fórum há bastante código sobre isso, e é bastante usual usarem isso nos programas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas

precisava de uma ajudinha sobre isto..

int main(int argc, char *argv[]){
if(argv[1]=="f"){ blablabla } else { printf("%c",argv[1]); }
system("pause");
}

eu executo o programa com o parâmetro f e não funciona, adicionei o printf("%c",argv[1]); para ver se dava e isto diz: [ 

alguem me pode ajudar?

cumps andreb

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Primeiro não podes comparar argv[1] == "f"

Tens de usar a função strncmp.

Segundo se queres fazer print tens de por %s já que se trata de uma string não de um char.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agr... quando e k se utiliza o int argc, char *argv[]? É k estou a fazer um prog em linux e só lá é k necessito de utilizar isto uma vez que trabalho na consola.

No exemplo abaixo não é necessário utilizar o argv e o argc?

Ex:

void main (void)
{
  int a, b;

  printf ("Valor A:\n");
  scanf ("%d", &a);
  printf ("Valor B:\n");
  scanf ("%d", &b);
  printf ("A=%d\nB=%d\n", a, b);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Precisas de usar o argc e argv quando queres saber quais os parâmetros com que o comando foi invocado. Isto tanto se aplica em Linux como noutro SO qualquer, mesmo quando o programa tem interface gráfica.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas então, não estou a perceber... o argv e o argc substituem por exemplo o scanf? Por exemplo, no Dev quando se executa um programa ele abre uma janela DOS em k a partir de la se introduzem os valores k são pedidos/recebidos pelo scanf ou outra função.

Obg

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os valores que obténs com o argc e argv são os valores que são passados ao mesmo tempo que a aplicação é invocada. O scanf lê valores que introduzes depois da aplicação arrancar. Não é exactamente a mesma coisa...

Normalmente aplicações com interface gráfica não usam scanfs, mas usam o argc e argv.

0

Partilhar esta mensagem


Link 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