🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #9298

Re: argumentos

#9298
From: quantium
Date: Mon, 05 Aug 2002 23:25
80 lines
3634 bytes
deabru wrote:
> On Mon, 05 Aug 2002 23:52:31 +0200, quantium wrote:
> 
> Hola, esta es una manera:
> 
> #include <stdio.h>
> #include <stdlib.h>
> 
> int main(int argc,char *argv[])
> {
> 	float i;
> 		
> 	if(argc!=3) 
> 	{
> 		puts("\nuso: ./programa opcion cantidad");
> 		puts("opcion: -e   pasa de euros a pesetas");
> 		puts("opcion: -p   pasa de pesetas a euros\n");
> 	}
> 	else
> 	{
> 	    i=atoi(argv[2]);
> 	    if(!strcmp(argv[1],"-e")) 
> 	    {
> 		printf("\n\n%f euros son %f pesetas\n\n",i,i*166);
> 	    }
> 	    else if(!strcmp(argv[1],"-p")) 
> 	    {
> 		printf("\n\n%f pesetas son %f euros\n\n",i,i/166);
> 	    }
> 	}
> }
> 
> el problema era el i=atoi(argv[2]); que no pasaba la comprobaci�n de
> argumentos (aunque hubiesen 0 argumentos el intentaba buscar el argumento
> numero 2) (tb he puesto las variables en fload y recordarte que si las
> posiciones del vector son 0,1,2, el n�mero de elementos que tiene son 3,
> y ese es el numero que tienes que controlar en if(argc!=3)
> 
> 
>>Hola a todos, tengo un problema con un programa el cual necesita
>>argumentos para usarse. Dicho programa pasa de Euros a Pesetas y
>>vicevesa, pues bien, el programa se ejecuta de la siguiente manera:
>>./programa -e cantidad (pasa de euros a pesetas) ,/programa -p cantidad
>>(pesetas a euros). Pero tengo un problema a la hora de dar un error si
>>no se introducen correctamente los argumentos, el aviso del error
>>consiste si no se isertan menos de dos argumentos o mas muestre un
>>mensaje de error, pues bien, si ejecuto: ./programa -e -loquesea
>>cantidad , el programa muestra el mensaje de error correctamente, en
>>cambio si inserto: /programa -loquesea , me da una violacion de
>>segmento. �alguien sabe porque? Voy a poner el codigo del programa. Un
>>saludo a todos por adelantado.
>>
>>#include <stdio.h>
>>#include <stdlib.h>
>>
>>int main(int argc,char *argv[])
>>{
>>	int i;
>>	i=atoi(argv[2]);
>>		
>>	if(argc!=2) {
>>		puts("\nuso: ./programa opcion cantidad"); puts("opcion: -e   pasa de
>>		euros a pesetas"); puts("opcion: -p   pasa de pesetas a euros\n");
>>	}
>>	}
>>	else if(!strcmp(argv[1],"-e")) {
>>		printf("\n\n%i euros son %i pesetas\n\n",i,i*166);
>>     }
>>     }
>>     else if(!strcmp(argv[1],"-p")) {
>>     	printf("\n\n%i pesetas son %i euros\n\n",i,i/166);
>>     }	
>>     }	
>>     }	
> 
> 

Muchisimas gracias amigo, y gracias por la aclaracion de si las
posiciones del vector son 0,1,2, el n�mero de elementos que tengo son 3.
Cuidate
Technical Details
Message-ID: <3D4F094F.7050201@lycos.es>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!20-madr-x12.libre.retevision.ES!not-for-mail
References: <3D4EF39F.2010105@lycos.es> <ain0fb$15njrg$1@ID-111771.news.dfncis.de>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,3131bf42e3f12e82
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-08-05 16:25:10 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!20-madr-x12.libre.retevision.ES!not-for-mail
From: quantium <quantium@lycos.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: argumentos
Date: Tue, 06 Aug 2002 01:25:03 +0200
Lines: 81
Message-ID: <3D4F094F.7050201@lycos.es>
References: <3D4EF39F.2010105@lycos.es> <ain0fb$15njrg$1@ID-111771.news.dfncis.de>
NNTP-Posting-Host: 20-madr-x12.libre.retevision.es (62.83.1.20)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: fu-berlin.de 1028589908 39058624 62.83.1.20 (16 [129971])
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0rc3) Gecko/20020523
X-Accept-Language: en-us, en
X-Enigmail-Version: 0.62.4.0
X-Enigmail-Supports: pgp-inline, pgp-mime