Arquivos e Passagem por parametros [RESOLVIDO]

1. Arquivos e Passagem por parametros [RESOLVIDO]

BrunoPeinado
peinado

(usa Ubuntu)

Enviado em 18/05/2009 - 16:42h

Olá pessoal estou com o seguinte problema, quero fazer um programa simples aonde eu passo por parametro dois arquivos e eles são lidos e imprimidos na tela.

eu executo por terminal e o nome do executavel é a.ou então fica assim: ./a.out arquivo1 arquivo2

Porém no meu código apenas o arquivo 1 é lido e o arquivo 2 não é.
Será que estou passano os parametros errados?
agradeço desde já a atenção


#include <stdio.h>
#include <stdlib.h>

int learq(int arquivo, char *parquivo[]);


int main(int arq1, char *parq1[], int arq2, char *parq2[])
{
printf("Lendo o primeiro arquivo \n");
learq(arq1, parq1);
printf("Lendo o segundo arquivo \n");
learq(arq2, parq2);
}

int learq(int arquivo, char *parquivo[]){
FILE *pfarquivo;
char caracter;
if(arquivo < 2 )
{
printf("\nFalto o nome!!!\n\n");
exit(1);
}

printf("\n%s\n\n",parquivo[1]);

if((pfarquivo = fopen(parquivo[1],"r")) == NULL)
{
printf("Erro ao abrir arquivo!!!\n\n");
exit(1);
};

do
{
caracter = getc(pfarquivo);
putchar(caracter);
}
while(caracter != EOF);

printf("\n\n");
fclose(pfarquivo);

return(0);
}


  


2. MELHOR RESPOSTA

Marcelo A. B. Slomp
mslomp

(usa Slackware)

Enviado em 18/05/2009 - 21:17h

o problema está no modo de obter os argumentos.
main tem a definição:
int main(int argc, char* argv[])
onde arg é o número de argumentos.
argv é um vetor que contém os argumentos em si (strings). então, o 1º argumento PASSADO será argv[1], o 2º argv[2] e assim por diante. o 1º argumento, argv[0], é o próprio nome do executável.

exemplo:
$ ./a.out arquivo1 arquivo2

argc = 3
argv[0] = a.out
argv[1] = arquivo1
argv[2] = arquivo2

3. Re: Arquivos e Passagem por parametros [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 18/05/2009 - 19:57h

Não entendi o que você quer fazer, é abrir um arquivo ? editar um arquivo ?? explique-se melhor.


4. Re: Arquivos e Passagem por parametros [RESOLVIDO]

BrunoPeinado
peinado

(usa Ubuntu)

Enviado em 19/05/2009 - 17:11h

Eu queria apenas lêr o arquivo para futuramente eu juntar varios arquivos e construir um programinha e estava com dúvida com parametros, gealmente eu passava 1 parametro primeira vez que vou passar mais do que um e o nosso amigo respondeu bem a minha dúvida.

Obrigado a todos.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts