Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) explicação argc e argv


david-ikki

Pergunta

olá pessoal estou lendo uma apostila de c encontrei 2 argumentos passados pa a função main() e não entendi o seu funcionamento....pesquisei bastante e não achei nada que explica seu total funcionamento com demonstração..se alguém poder me ajudar eu agradeço a atenção desde já...obrigado..

+ quero saber tudo a respeito desse tal de argv e argc...

Obrigado. :huh: :huh:

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Veja bem caro amigo eu li algumas coisas a respeito e não consegui compreender o funcionamento, quero algum site ou forum ou apostila que explique o total funcionamento do argv e argc...obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Não há necessidade de apostila, slide ou nada do tipo. É algo bem simples.

Como ainda não conseguiu entender vou tentar trazer alguns exemplos:

Se estiver no linux, utilize o atalho WinKey + R e abrirá o "Executar".

Digite o seguinte: cmd /t:17 e dê ok. (se quiser pode testar também utilizando a função system do próprio C)

Será aberta uma janela de comando com fundo azul. O comando /t:17 é que indica isso.

Foi executado o arquivo cmd.exe e passamos alguns alguns parâmetros para ele. Esse dados podem ser recuperados a partir dos argumentos acima citados. Note também que o primeiro argumento é o próprio nome do arquivo (no caso, cmd) e, portanto, argv[1] apontará para /t:17

Espero que tenha entendido. Qualquer coisa posta aí !

Link para o comentário
Compartilhar em outros sites

  • 0

veja esse código por exmplo:

A função main() pode ter parâmetros formais. Mas o programador não pode escolher quais serão eles. A declaração

mais completa que se pode ter para a função main() é:

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

Os parâmetros argc e argv dão ao programador acesso à linha de comando com a qual o programa foi chamado.

O argc (argument count) é um inteiro e possui o número de argumentos com os quais a função main() foi chamada na

linha de comando. Ele é, no mínimo 1, pois o nome do programa é contado como sendo o primeiro argumento.

O argv (argument values) é um ponteiro para uma matriz de strings. Cada string desta matriz é um dos parâmetros da

linha de comando. O argv[0] sempre aponta para o nome do programa (que, como já foi dito, é considerado o

primeiro argumento). É para saber quantos elementos temos em argv que temos argc.

Exemplo: Escreva um programa que faça uso dos parâamentros argv e argc. O programa deverá receber da linha de

comando o dia, mes e ano correntes, e imprimir a data em formato apropriado. Veja o exemplo, supondo que o

executável se chame data:

data 26 04 98

O programa deverá imprimir:

26 de abril de 1998

#include <stdio.h>
#include <stdlib.h>
void main(int argc, char *argv[])
{
int mes;
char *nomemes [] = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio",
"Junho", "Julho", "Agosto", "Setembro", "Outubro",
"Novembro", "Dezembro"};
if(argc == 4) /* Testa se o numero de parametros fornecidos esta' correto
o primeiro parametro e' o nome do programa, o segundo o dia
o terceiro o mes e o quarto os dois ultimos algarismos do ano */
{
mes = atoi(argv[2]); /* argv contem strings. A string referente ao mes deve ser
transformada em um numero inteiro. A funcao atoi esta
sendo usada para isto: recebe a string e transforma no
inteiro equivalente */
if (mes<1 || mes>12) /* Testa se o mes e' valido */
printf("Erro!\nUso: data dia mes ano, todos inteiros");
else
printf("\n%s de %s de 19%s", argv[1], nomemes[mes-1], argv[3]);
}
else printf("Erro!\nUso: data dia mes ano, todos inteiros");
}

O que eu não entendo é a profundidade do uso desses parametros na função main();

Por exemplo posso usar isto em que?? para receber + ou - o que de retorno e por que ultilizar....ou seja li e reli e ainda não entendi nada..desculpe... mais to me esforçando o maximo para compreender por isso quero ajuda...Talvez o enuciado acima já explique tudo..+ ainda não capitei.

Link para o comentário
Compartilhar em outros sites

  • 0

O objetivo é passar parâmetros ao programa quando for iniciado. Por exemplo, você pode ter um arquivo programa.exe que faz um loop com uma quantidade de valores que seja passada. Mas você pode querer que, ao invés de pedir esses valores ao usuário pelo programa você simplesmente execute-o assim:

programa.exe 100

Isso é útil ao trabalhar com, por exemplo, arquivos .bat. Você pode especificar os valores para o programa dessa forma.

Link para o comentário
Compartilhar em outros sites

  • 0
O objetivo é passar parâmetros ao programa quando for iniciado. Por exemplo, você pode ter um arquivo programa.exe que faz um loop com uma quantidade de valores que seja passada. Mas você pode querer que, ao invés de pedir esses valores ao usuário pelo programa você simplesmente execute-o assim:

programa.exe 100

Isso é útil ao trabalhar com, por exemplo, arquivos .bat. Você pode especificar os valores para o programa dessa forma.

Há belz,agora entendi....valeu.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...