Jump to content
Fórum Script Brasil
  • 0

Parâmetros via cmd


†h!@gø

Question

Olá, eu quero fazer que o meu programa, quando cahamado no cmd com o parametro -r chame a função de outro módulo mas que esta no mesmo projeto, não tenho a menor noção de como fazer isso alguém pode me ajudar?

esse é meu código

#include <stdio.h>
#include <string.h>

               // Código dentro do MAIN

main()
{
    
    system ("title Contador de arquivo");
    FILE *atps;
    int i, linha, linha_sim, linha_mult, linha_branc;
    linha = linha_sim = linha_mult = linha_branc = 0;
    float percent;
    char ch, arquiv[40],pr[2];
    printf("Digite o nome do arquivo: ");
    gets(arquiv);
    strcat(arquiv, ".txt");
 //  if (strcomp(pr,"-r")){}
                         
    if ((atps = fopen(arquiv,"r")) != NULL)   //se o arquivo não for nulo, fara as condicoes abaixo
    {
        do
        {
            do
            {
                ch = getc(atps);
            }while(ch == ' ');    //retira os espaços no inicio da linha

            if(ch == '\n')      //verifica se é o fim da linha
            {
                linha++;
                ch = getc(atps);
                if(ch == '\n')    //se a proxima linha for \n conta linhas em branco
                {
                    linha++;
                    linha_branc++;
                }
            }
            if(ch == '/')            //primeira letra da linha
            {
                ch = getc(atps);
                if(ch == '/')             //segunda letra da linha
                    linha_sim++;        //conta comentarios simples

                else if(ch == '*')    //segunda letra da linha
                {
                    linha_mult++;
                    ch = getc(atps);       //elimina se a proxima letra for *
                    do
                    {
                        ch = getc(atps);        //elimina a segunda letra, cajo seja o asterisco

                        if(ch == '\n')
                        {
                            linha++;
                            linha_mult++;
                        }
                    }while(ch!= '/');    //terceira letra, repete se encontrar a letra

                }
            }
        }while(ch != EOF);   //repete enquanto não for o fim do arquivo

    fclose(atps);
    printf("\n");
    printf("\xc9");
    for (i=0;i<52;i++)
        printf("\xcd");
    printf("\xbb");
    printf("\n\xba Relat\xa2rio                          Percentual      \xba");
    printf("\n\xba                                                    \xba");
    printf("\n\xba Total de Linhas: %5d                             \xba",linha);
    percent = ((float) linha_sim / linha) * 100;  //fara o percentual do total de linhas
    printf("\n\xba Coment\xa0rios Simples: %5d      (%3.0f%% do C\xa2\digo)   \xba",linha_sim, percent);
    percent = ((float) linha_mult / linha) * 100;
    printf("\n\xba Coment\xa0rios M\xa3ltiplos: %5d    (%3.0f%% do C\xa2\digo)   \xba",linha_mult, percent);
    percent = ((float) linha_branc / linha) * 100;
    printf("\n\xba Linhas em Branco: %5d         (%3.0f%% do C\xa2\digo)   \xba\n",linha_branc, percent);
    printf("\xc8");
    for (i=0;i<52;i++)
        printf("\xcd");
    printf("\xbc");
    printf("\n\n");

    }   //fim do primeiro if

    else
        printf("\nN\xc6o foi poss\xa1vel abrir o arquivo\n\n");
 getch();
}
e essa a função que esta em outro módulo que eu quero que ele chame
int mostrarTelaPrincipal()
{
  int operacao;
  system("cls");
  printf("+------------------------------------------------------------------------+\n");
  printf("+                      Modulo de Registro de Livros                      +\n");
  printf("+  1 = Inserir / 2 = Consultar / 3 = Alterar / 4 = Excluir ou Restaurar  +\n");
  printf("+  5 = Listar / 6 = Exportar para arquivo / 0 = Sair                     +\n");
  printf("+------------------------------------------------------------------------+\n");
  printf("\nInforme a operacao desejada: ");
  scanf("%d", &operacao);  
  fflush(stdin);
   
  return operacao;
}

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

amigo, você já estudou sobre instrução de linha de comando?

pois bem.

Primeiramente inclua em sua main 2 parâmetros do jeito que está aqui:

int main(int argc,char **argv)
O que acontece: Suponha que você chamará o seu programa no cmd dessa forma:
programa -r

O "-r" estará como string em argv[1].

Se quiser que o seu programa comporte-se diferente quando acionar esse parâmetro, é só verificar essa posição.

Explicando melhor as linhas de comando:

O argc contém o número de parâmetros que você enviou +1 (digo +1 porque se não houver nenhum parametro, o valor de argc será 1). Assim, se quiser verificar a quantidade de parâmetros enviados, verifique essa variável.

Já o argv é uma matriz de caraceres (podendo ser o seu parâmetro *argv[]), onde cada linha dessa matriz terá cada parâmetro enviado pelo cmd. A posição argv[0] contém escrito o local onde o executável se encontra.

Ex.: Se ele se localiza em C:\Downloads, o argv[0] terá como valor "C:\Downloads".

cada parâmetro separado por espaço ocupará uma posição do argv diferente:

Ex.:

meuprograma parametro1 parametro2 parametro3

o valor de argv[0] será o diretório do programa como expliquei;

o valor de argv[1] será "parametro1";

o valor de argv[2] será "parametro2";

o valor de argv[3] será "parametro3";

Espero ter ajudado!

Edited by bruce845
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...