Título: Archivos y Stdarg Publicado por: Triper0 en 2 Agosto 2011, 18:58 pm Bueno, mi problemita es el siguiente: Quiero hacer un programita que recorra como parámetro más de un archivo (una cantidad indeterminada) y que luego, en un archivo que se llame "concat.txt" concatene todos los archivos que se pasaron por parámetro.
Hice lo siguiente, pero me crea el "concat.txt" con un montón de "ÿÿÿ" que si lo dejo corriendo se me llena el rígido, junto con otros archivos .txt locos... Se ve que estoy haciendo algo mal. Acá les dejo el código: Código: #include <stdio.h> Y en el caso de que se pasen 2 archivos por argumento, en vez de concatenarlo hay que copiarlo... Los archivos del main son archivos que cree y los abrí directamente para probarlo, me interesa solamente que funcione la función concatenarArchivo Título: Re: Archivos y Stdarg Publicado por: rir3760 en 2 Agosto 2011, 19:44 pm Tienes que darle un buen repaso a tu material de referencia ya que el programa tiene varios errores importantes y algunos de ellos de concepto.
Dentro de la función tratas de abrir los archivos cuando ya abriste estos en la función principal, también tratas a los objetos de tipo "FILE" (debería ser "FILE *") como cadenas de texto indicando el nombre de los archivos. El programa corregido (compáralo con el original): Código
Un saludo Título: Re: Archivos y Stdarg Publicado por: Triper0 en 2 Agosto 2011, 20:27 pm Tienes que darle un buen repaso a tu material de referencia ya que el programa tiene varios errores importantes y algunos de ellos de concepto. Dentro de la función tratas de abrir los archivos cuando ya abriste estos en la función principal, también tratas a los objetos de tipo "FILE" (debería ser "FILE *") como cadenas de texto indicando el nombre de los archivos. El programa corregido (compáralo con el original): Código
Un saludo Un millón de gracias, si... Me mandé varios mocos... Una cosa que no entiendo es la linea esta: Código: entrada = fopen(va_arg(va, char const *), "r"); La parte de "char const *" sería como decirle que va a encontrar una constante de caracteres, o sea "FILE" y le asignas el '*'... ¿O algo así?... Eso no lo entendí muy bien... El resto perfecto... DESDE YA, UN MILLÓN Y MEDIO DE GRACIAS ;-) Título: Re: Archivos y Stdarg Publicado por: rir3760 en 3 Agosto 2011, 01:35 am Una cosa que no entiendo es la linea esta: No.Código: entrada = fopen(va_arg(va, char const *), "r"); La parte de "char const *" sería como decirle que va a encontrar una constante de caracteres, o sea "FILE" y le asignas el '*'... ¿O algo así?... Se utiliza la macro "va_arg" para obtener cada uno de los argumentos sin nombre (los que sustituyen a "...", en tu caso los tres nombres de archivo). El segundo argumento de "va_arg" debe ser el tipo, en tu caso utilizamos "char const *" ya que ese es el tipo de las literales de cadena como "a.txt". Un saludo Título: Re: Archivos y Stdarg Publicado por: Triper0 en 3 Agosto 2011, 05:30 am No. Se utiliza la macro "va_arg" para obtener cada uno de los argumentos sin nombre (los que sustituyen a "...", en tu caso los tres nombres de archivo). El segundo argumento de "va_arg" debe ser el tipo, en tu caso utilizamos "char const *" ya que ese es el tipo de las literales de cadena como "a.txt". Un saludo A buenísimo, ese dato del "char const *" no lo tenía... Muchas gracias nuevamente... ¡Saludos! |