Argumentos
Publicado por Dimus (1 intervención) el 05/08/2002 23:56:30
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><br>
#include <stdlib.h><br>
<br>
int main(int argc,char *argv[])<br>
{<br>
int i;<br>
i=atoi(argv[2]);<br>
<br>
if(argc!=2) {<br>
puts("\nuso: ./programa opcion cantidad");<br>
puts("opcion: -e pasa de
euros a pesetas");<br>
puts("opcion: -p pasa de
pesetas a euros\n"); <br>
}<br>
<br>
else if(!strcmp(argv[1],"-e")) {<br>
printf("\n\n%i euros son %i pesetas\n\n",i,i*166);
<br>
}<br>
<br>
else if(!strcmp(argv[1],"-p")) {<br>
printf("\n\n%i pesetas son %i euros\n\n",i,i/166);<br>
} <br>
#include <stdio.h><br>
#include <stdlib.h><br>
<br>
int main(int argc,char *argv[])<br>
{<br>
int i;<br>
i=atoi(argv[2]);<br>
<br>
if(argc!=2) {<br>
puts("\nuso: ./programa opcion cantidad");<br>
puts("opcion: -e pasa de
euros a pesetas");<br>
puts("opcion: -p pasa de
pesetas a euros\n"); <br>
}<br>
<br>
else if(!strcmp(argv[1],"-e")) {<br>
printf("\n\n%i euros son %i pesetas\n\n",i,i*166);
<br>
}<br>
<br>
else if(!strcmp(argv[1],"-p")) {<br>
printf("\n\n%i pesetas son %i euros\n\n",i,i/166);<br>
} <br>
Valora esta pregunta


0