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

Danicas

Argc e Argv

4 mensagens neste tópico

Eu tenho que fazer um código que faça o seguinte:

-Quando o programa é executado sem nenhum argumento (a.exe) irá imprimir como está neste momento a fazer; deixa 3 posições em branco.

-Quando o programa é executado da seguinte forma: a.exe 1 LUANDA vai colocar a palavra LUANDA na linha i=1 e j=3(no espaço q tava em branco nº3)

-Quando o programa é executado da seguinte forma: a.exe 2 SEOUL vai colocar SEOUL na linha i=2 e j=4(no espaço q tava em branco no ultimo nº4)

E a minha duvida é como que vou "guardar" o nº e a cidade que a pessoa introduz na consola para depois seja inserida a cidade na respectiva linha e coluna.

O meu codigo:

#include <stdio.h>

void main (int argc, char *argv[])
{
int i,j,k, num;

char cidades [3][5][10] = {{"Lisboa", "London", "Berlin", "Paris", "Madrid"}, 
					  	   {"Rome","Lisboa","Toledo"},
					   	   {"Frankfurt","London","New York", "Tokyo"}};					   	   


if (argc!=1)
{
	if (i==1)
	{
		strcpy(argv[1][3], "LUANDA");
	}

	else

		if (i==2)
		{
			strcpy(argv[2][4], "SEOUL");
		}	
}

for (i=0;i<3;i++)
{
	for (j=0; j<5; j++)

		printf("%d-%-10s ", j,cidades[i][j]);
		printf("\n");

}

}

Se alguem puder dar uma ajudinha, agradeço imenso  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu sei que isso não tá  afazer grande sentido, mas o meu problema é que não estou a perceber como é que ao inserirmos na consola por exemplo a.exe 1 LUANDA vamos fazer para que LUANDA seja introduzido na linha 1 da lista das cidades  :wallbash: já tive a ver o site que me mandaste mas fiquei sem perceber isso na mesma, nao percebo como é que se armazena o que se escreve á frente do executavel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui vai uma explicaçao simples sobre os parametros:

O inteiro argc é o numero de parametros que foram passados. Serve para saberes quantos parametros o utilizador passou ao programa.

O array argv contem os parametros que foram passados ao programa. No teu exemplo:

argv[0] -> .../a.exe (caminho do executavel)

argv[1] -> 1

argv [2] -> LUANDA

Portanto quando queres utilizar um dos valores é só utilizar as posiçoes respectivas do array.

Experimenta passar parametros para este pequeno programa para perceberes melhor :

#include <stdio.h>

void main (int argc, char *argv[])
{
   
   
   printf("Foram passados %d parametros.\n\nArgv[0] -> %s\nArgv[1] -> %s\nArgv[2] -> %s\n",argc,argv[0],argv[1],argv[2]);
   
   
   
system("PAUSE");
       
}

Recomendo que refaças o teu programa todo desde o inicio para teres a certeza que percebeste ;)

Espero ter ajudado.  :)

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