Hola amigos, tengo un editor que he comprado, y esta es la plantilla que me aparece
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
}
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!!!
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:\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"
Ok, entonces en un programa sin argumentos podría simplemente escribir
main()
Es correcto??
y porque se le indica un int antes del main???
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
main()// malo
int main()//bueno
int main(int argc, char *argv[])//bueno
Perfecto, gracias por sacarme de esas dudas, sirve para una mejor comprensión.
Saludos!!!