elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [SOLUCIONADO][Ayuda]Parametros en la funcion main con Geany, C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO][Ayuda]Parametros en la funcion main con Geany, C++  (Leído 4,722 veces)
darking664

Desconectado Desconectado

Mensajes: 10



Ver Perfil
[SOLUCIONADO][Ayuda]Parametros en la funcion main con Geany, C++
« en: 7 Septiembre 2013, 22:25 pm »

Hola a todos...

Soy nuevo en este foro, me han hablado muy bien de esta pagina. No se si sea el lugar correcto para preguntar acerca de esto.

Actualmente estoy estudiando en la universidad, recibo clases de programación bajo le IDE DevC
y a mi no me agrada mucho estar usando Windows. Bueno dejare explicaciones para después...


Uso Geany en Debian... y hasta ahora no he podido la opcion para poder manejar los Parámetros...
Este es mi código fuente... es un programa sencillo que muestra los datos de los parámetros de main y muestra su promedio.



using namespace std;

int main(int argc, char *argv[])
{
cout<<"\nargc="<<argc;

   for(int i=0;i<argc;i++)
   {
   cout<<"\n"<<argv<<"\n";
   }

//Ahora aobtener promedio
int acum=0,n;
float prom;

   for(int i=2;i<argc;i++)
   {
   n=atoi(argv);
   //acum+=n;
   acum=acum+n;
   }

prom=(float)acum/(argc-2);
cout<<"\nEl promedio es: "<<prom<<"\n\n";


    system("PAUSE");
    return EXIT_SUCCESS;
}


Si alguien ha usado Geany... podría decirme como puedo ingresar loas parámetros a la función main. Se los agradecería mucho. :)
O en su defecto recomendarme otro programa para practicar.

Gracias y saludos.


« Última modificación: 8 Septiembre 2013, 03:44 am por zagato-krono » En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: [Ayuda]Parametros en la funcion main con Geany, C++
« Respuesta #1 en: 7 Septiembre 2013, 22:55 pm »

Ejecuta el programa desde la consola de comandos y olvídate de la IDE, para ello dirígete a la carpeta donde se encuentra la aplicación compilada desde la consola y usa:

Código:
./nombrePrograma 1 2 3 4 5 6

Los números son los parámetros que le quieres pasar al programa, se almacenarán en el array "argv"; puedes insertar la cantidad que quieras.

Esto no está bien:

Código
  1. ...
  2. cout<<"\n"<<argv<<"\n";
  3. ...
  4. n=atoi(argv);
  5. ...

Debes indicar la posición a la que quieres acceder:

Código
  1. ...
  2. cout<<"\n"<<argv[i]<<"\n";
  3. ...
  4. n=atoi(argv[i]);
  5. ...

Esto no debería funcionarte en Debian:

Código:
system("PAUSE");

Saludos.


« Última modificación: 7 Septiembre 2013, 23:03 pm por Alien-Z » En línea

darking664

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: [Ayuda]Parametros en la funcion main con Geany, C++
« Respuesta #2 en: 7 Septiembre 2013, 23:12 pm »



<< Ejecuta el programa desde la consola de comandos y olvídate de la IDE, para ello dirígete a la carpeta donde se encuentra la aplicación compilada desde la consola >>

Código:
./nombrePrograma 1 2 3 4 5 6

Debes indicar la posición a la que quieres acceder:

Código
  1. ...
  2. cout<<"\n"<<argv[i]<<"\n";
  3. ...
  4. n=atoi(argv[i]);
  5. ...



Esta parte la uso con DevC:
Código:
system("PAUSE");




Modificando y Ejecutando...
de verdad Gracias por la rápida respuesta.

:D :D
En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: [Ayuda]Parametros en la funcion main con Geany, C++
« Respuesta #3 en: 7 Septiembre 2013, 23:27 pm »

Hola

El primer parámetro de argv lo encontras en el índice 1 no en 0, por otro lado no estas indizando argv.

Por ejemplo cuando dice:
Código
  1. for(int i=0;i<argc;i++)
  2.   {
  3.   cout<<"\n"<<argv<<"\n";
  4.   }  

Debería ser por ejemplo:
Código
  1.  for(int i=0;i<argc;i++)
  2.    cout << argv[i] << endl;
  3.  

En definitiva, de este modo creo que tendría que funcionarte:
Código
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4. int main(int argc, char* argv[])
  5. {
  6.  
  7.  float t, sum = 0;
  8.  
  9.  // Mostrar parámetros
  10.  std::cout << "Parametros recibidos: ";
  11.  for (int i = 1; i < argc; i++)
  12.    std::cout << argv[i] << " ";
  13.  std:: cout << std::endl;
  14.  
  15.  // Calcular promedio
  16.  for (int i = 1; i < argc; i++) {
  17.    std::istringstream(argv[i]) >> t;
  18.    sum += t;
  19.  }
  20.  if ((argc-1) > 0)
  21.    std::cout << "Promedio: " << sum / (argc-1) << std::endl;
  22.  return 0;
  23. }
  24.  

Saludos :)

Edito: Perdón, no había visto la respuesta de Alien-Z mintras escribía.
 

« Última modificación: 7 Septiembre 2013, 23:31 pm por ecfisa » En línea

darking664

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: [Ayuda]Parametros en la funcion main con Geany, C++
« Respuesta #4 en: 8 Septiembre 2013, 03:42 am »

Código:

En definitiva, de este modo creo que tendría que funcionarte:
Código
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4. int main(int argc, char* argv[])
  5. {
  6.  
  7.  float t, sum = 0;
  8.  
  9.  // Mostrar parámetros
  10.  std::cout << "Parametros recibidos: ";
  11.  for (int i = 1; i < argc; i++)
  12.    std::cout << argv[i] << " ";
  13.  std:: cout << std::endl;
  14.  
  15.  // Calcular promedio
  16.  for (int i = 1; i < argc; i++) {
  17.    std::istringstream(argv[i]) >> t;
  18.    sum += t;
  19.  }
  20.  if ((argc-1) > 0)
  21.    std::cout << "Promedio: " << sum / (argc-1) << std::endl;
  22.  return 0;
  23. }
  24.  

Saludos :)

Edito: Perdón, no había visto la respuesta de Alien-Z mintras escribía.

Gracias a los dos... ahora pude terminar mis practicas... pero tendré muy en cuenta tu ejemplo.
Doy mi problema por solucionado..
:D :D

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines