Depois de um longo inverno, aqui estamos…
Apresento hoje um vídeo onde demostro como configurar o Dev-C++ para passar parametros na execução de um programa. Isso é usado quando queremos testar a função main passando argumentos para ela.
Já postado aqui com o titulo de “A declaração “padrão”da função Main” a explanação do comportamento dos argumentos, agora mostro de forma a não precisar entrar no “Prompt de Comando” para realizar esses testes.
Na segunda parte do vídeo faço um exemplo de como criar bibliotecas, os arquivos necessários e a ligação deles.
Espero que aproveitem o vídeo
Obs.. na segunda aula de ponteiro postado aqui, no final do vídeo demostro o funcionamento da argc, argv, quem ainda tiver dúvidas pode recorrer ao vídeo
Códigos:
exemplo.c // argc, argv
#include <stdio.h>
#include <string.h>
// utilizando os argumentos da funcao main
int main (int argc, char const *argv[])
{
// argc - Variavel que contem o numero de argumentos recebido pela funcao main
// argv - Matriz de strings, contendo em cada posicao, cada um dos argumentos passados
int i;
int flag;
int acheiSilent =0;
flag = 0;
// Imprime Argumentos
for(i = 0; i < argc; i++) {
printf("argv[%i] = %s\n",i,argv[i]);
}
// verifica se o usuario passou um argumento desejado
// o argumento desejado é "FAC", se em alguns dos argumentos contiver a palavra FAC
// imprimir uma mensagem na tela
for(i = 0; i < argc; i++) {
if(strstr(argv[i],"FAC"))
printf("Encontrei a palavra FAC na posicao %i dos parametros\n",i);
}
// Abaixo 1 exemplo como no ATPS, aonde a comparação é otimizada
for(i = 0; i < argc; i++) {
flag = flag || (strstr(argv[i],"-c"));
acheiSilent = acheiSilent || (strstr(argv[i],"-s"));
acheiSilent = acheiSilent || (strstr(argv[i],"-silent"));
}
if(flag) {
printf("achei um parametro -c\n");
}
if(acheiSilent) {
printf("achei um parametro silenciador (-s ou -silent)");
}
getch();
return 0;
}
exemplo.c // bibliotecas
#include <stdio.h>
#include "imprime.h"
// criando bibliotecas
// Arquivo principal
// Os outros arquivos estao no mesmo diretorio
int main (int argc, char const *argv[])
{
imprime("Ola mundo");
getch();
return 0;
}
imprime.h
#include "imprime.c" void imprime(char *mensagem); // assinatura da funcao
imprime.c
#include <stdio.h>
void imprime(char *mensagem) {
printf("%s", mensagem); // corpo da funcao
}