// lab12.cpp  (C) 2005 adolfo@di-mare.com

/** \file  lab12.cpp
    \brief Uso de argumentos en la línea de comandos.

    \author Adolfo Di Mare <adolfo@di-mare.com>
    \date   2005
*/


#include <iostream>
#include <fstream.h>
/// Programa principal que recibe argumentos en la línea de comandos.
/// \c argc ==> (arg)+(C)ount ==> Cantidad de argumentos recibidos.
/// \c argv ==> (arg)+(V)ector ==> Vector de hileras con los argumentos.
/// Este programa lee un archivo y lo graba sobre otro
/// - Su efecto es similar e ejecutar el comand <code> copy lea grabe </code>.
int main( int argc, char *argv[] ) {
    if ( argc != 3 ) {
        cout << "Forma de uso:" << endl << argv[0]
             << " archivoLEA archivoGRABE" << endl;
    }
    else {
        ifstream leeArchivo( argv[ 1 ], ios::in );
        if ( ! leeArchivo ) {
            cout << argv[ 1 ] << " no fue posible abrir el archivo" << endl;
        }

        ofstream grabeArchivo( argv[ 2 ], ios::out );
        if ( ! grabeArchivo ) {
            cout << argv[ 2 ] << " no fue posible abrir el archivo" << endl;
        }

        // copia una por una las letras
        while ( ! leeArchivo.eof() ) {
            grabeArchivo.put( (char)( leeArchivo.get() ) );
        }
    }

    return 0;
}

// EOF: lab12.cpp