Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Joe Fraddy en 2 Agosto 2015, 07:47 am



Título: C++ plantilla significado
Publicado por: Joe Fraddy en 2 Agosto 2015, 07:47 am
Hola amigos, tengo un editor que he comprado, y esta es la plantilla que me aparece

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int main(int argc, char *argv[]) {
  5.  
  6. }

La linea 3 ya se que es para evitar poner el std:: al ejecutar algunos parámetros.
pero que significan los argumentos de la función principal de la linea 4 y para que sirven.

Además leí por allí que es una mala práctica escribir la linea 3, que es mejor poner std:: cada vez que se utilice, si esto es así en que afecta a una buena programación, ya que quiero evitar los errores comunes en este lenguaje.

Saludos!!!


Título: Re: C++ plantilla significado
Publicado por: engel lex en 2 Agosto 2015, 07:58 am
sobre la linea 3 la recomendación de no usarlo son casos puntuales, ya que se puede confundir con otros espacios de nombre... (por ejemplo tengas una funcion "cout" de la librería pepito.h, y no podrás accedería porque el asumirá std::cout...)


la linea 4 son para el pase de parametros de argumentos por consola es esto mismo que habías preguntado (https://foro.elhacker.net/scripting/programa_en_perl_con_opciones-t439152.0.html) pero en C/C++

para recordar que son puedes verlo así "arg" es argumento, "c" es cantidad y "v" son valores....

argc contiene la cantidad de argumentos pasados, siempre va a ser 1 o más, argv contiene los valores, siendo el valor 0 siempre el programa como tal

ej

Código:
C:\programas\ejemplo.exe -h 1 -p 2

esto será
argc = 5
argv[0] = "ejemplo.exe"
argv[1] = "-h"
argv[2] = "1"
argv[3] = "-p"
argv[4] = "2"


Título: Re: C++ plantilla significado
Publicado por: Joe Fraddy en 2 Agosto 2015, 08:05 am
Ok, entonces en un programa sin argumentos podría simplemente escribir

Código
  1. main()

Es correcto??

y porque se le indica un int antes del main???


Título: Re: C++ plantilla significado
Publicado por: engel lex en 2 Agosto 2015, 08:11 am
en un programa correcto toda variable y función tiene tipo,  el main siempre es int y siempre debe tener return

main es una funcion que retorna un entero para que el SO u otro programa lo interprete, normalmente 0 significa que todo está bien

Código
  1. main()// malo
  2. int main()//bueno
  3. int main(int argc, char *argv[])//bueno


Título: Re: C++ plantilla significado
Publicado por: Joe Fraddy en 2 Agosto 2015, 08:38 am
Perfecto, gracias por sacarme de esas dudas, sirve para una mejor comprensión.


Saludos!!!