Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: kur79 en 30 Septiembre 2015, 20:42 pm



Título: Programar orden echo de Unix [C]
Publicado por: kur79 en 30 Septiembre 2015, 20:42 pm
Pues eso, estoy empezando con Shell y de c++ controlo bien. Trato de hacer esto:

Realice un programa en C equivalente a la orden echo, es decir, un programa que lo único que haga sea mostrar sus argumentos. Llámelo eco. Ejecute
   $ eco a b

   $ eco *

Según tengo entendido tengo que usar los int argc, char** argv del main, pero no se. a ver si alguien podría guiarme un poco.


Título: Re: Programar orden echo de Unix [C]
Publicado por: ivancea96 en 30 Septiembre 2015, 21:03 pm
Código
  1. int main(int argc, char** argv){
  2.    cout << argv[0];
  3. }

Quitando el primer argumento que es el ejecutable en sí, los otros, si los hay, son los argumentos.


Título: Re: Programar orden echo de Unix [C]
Publicado por: kur79 en 30 Septiembre 2015, 21:16 pm
uuuf no lo entiendo, por qué se hace lo de mostrar el argv[0] directamente, si está vacio.
Y eso sería en c++, hacer el cout en c que sería printf(argv[0]);

El c++ si lo controlo bastante bien, pero el c no entiendo casi nada y eso que son practicamente lo mismo.


Título: Re: Programar orden echo de Unix [C]
Publicado por: ivancea96 en 30 Septiembre 2015, 22:01 pm
uuuf no lo entiendo, por qué se hace lo de mostrar el argv[0] directamente, si está vacio.
Y eso sería en c++, hacer el cout en c que sería printf(argv[0]);

El c++ si lo controlo bastante bien, pero el c no entiendo casi nada y eso que son practicamente lo mismo.

Ese código que te puse es C++, obviando las librerías y uso de namespaces. Saber C++ implica saber C, tenlo en cuenta.

Código
  1. int main(int argc, char** argv){
  2.    for(int i=1; i<argc; i++){
  3.        cout << argv[i];
  4.        if(i+1<argc)
  5.            cout << ' ';
  6.    }
  7. }