• Domingo 15 de Diciembre de 2024, 08:30

Autor Tema:  Re: abrir fichero pasado por linea de comandos  (Leído 1617 veces)

diminuta

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: abrir fichero pasado por linea de comandos
« en: Sábado 26 de Abril de 2003, 02:25 »
0
Hola, esoty h aciendo un programa en c++ al cual se le pasan dos nombres de fichero por linea de comandos, pero creo que lo que hago no está bien

int main (int argc,char *argv[])

{
FILE *origen;
FILE *destino;
origen=fopen(argv[1],"r");
destino=fopen (argv[2],"w");

...
}

alguien me puede ayudar'???:ayuda:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: abrir fichero pasado por linea de comandos
« Respuesta #1 en: Sábado 26 de Abril de 2003, 07:40 »
0
tu error es que no estas pasando todos los parametros a la funcion fopen();

origen=fopen(argv[1],"r");

preferiblemente debes especificar en que forma abres el archivo, es decir si es de texto o binario:

texto:
origen=fopen(argv[1],"+t");
esto quiere decir:
t= modo texto, + = se abre para lectura y escritura

si fuese binario en vez de t deberia ir b.
tabla:

r          abre solo lectura(read)
w        abre archivo para escritura(write)
a         abre un archivo en modo w, pero si no existe lo crea.
t          abre un archivo para usar en modo texto
b         abre un archivo para usar en modo binario
+         abre archivo para lectura escritura


conbinaciones posibles:

+t, +b, wt, wb, a t, ab, rt, rb

no olvides corrrer tu programa paso por paso e inspeccionar los valores de las variables para verificafr que no se te este colando basura en el argv[]...
Tampoco olvides esto:

#include<stdio.h> en el encabezado.

espero que te haya sido de utilidad.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

desorden

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: abrir fichero pasado por linea de comandos
« Respuesta #2 en: Sábado 26 de Abril de 2003, 21:06 »
0
Citar
Originalmente publicado por diminuta
Hola, esoty h aciendo un programa en c++ al cual se le pasan dos nombres de fichero por linea de comandos, pero creo que lo que hago no está bien.


Pues está bien. ¿Por qué crees que lo haces mal?

Por cierto, no estás haciendo un programa en C++, sino en C.
desorden

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: abrir fichero pasado por linea de comandos
« Respuesta #3 en: Sábado 26 de Abril de 2003, 22:15 »
0
por eso respondi lo que respondi, pues es factible que ella este tratando de abrir un archivo de texto en modo binario, o viceversa, y puede que haya obtenido resultados inexperados, como caracteres raros en caso de que lea como binario algo de texto, o arrays con tamaños que no corresponde en el caso de que estuviera leyendo como texto un archivo que debiera ser leido binario..

El error puede no ser de sintaxis, ni en tiempo de diseño, lo más probable es que se le hubiese generado como un error en tiempo de ejecucion o como un programa que no proporciona la informacion que deberia.

Por cierto ese error de confundir c con c++ es muy comun, en especial cuando la mayoria de los compiladores aceptan extenciones c  o cpp indistintamente para ambos lenguajes, y más aún cuando puedes progtramar en modo mixto, es decir un programa con c y c++ al tiempo...
no estoy muy de acuerdo con esto, menos mal muchos de los mas recientes en windows ya no permiten estas opciones por defecto, en linux, generalmente el gcc generaria error incluso por compilar un programa cuyo fuente se escribiera con la extencion .c en masyuscula es decir ext  .C, o por compilar un archivo de c++ con ext c generaria error, a no ser que como opcion se le pasara que ese es un archivo de c.

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

desorden

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
abrir fichero pasado por linea de comandos
« Respuesta #4 en: Domingo 27 de Abril de 2003, 00:44 »
0
Sí. Seguramente quiere hacer una copia de un fichero en otro, por lo tanto debe hacerlo en modo binario.
Creo que, cuando tengáis algún problema, es mejor copiar todo el programa. Así no tendremos que imaginar que es lo que queréis hacer y que puede estar mal. Si son muchas líneas de código, recordad que en éste foro se pueden adjuntar archivos.
Lo que publicó diminuta estaba bien
 
Citar
JuanK dijo:
puedes progtramar en modo mixto, es decir un programa con c y c++ al tiempo... no estoy muy de acuerdo con esto,

Yo tampoco estoy de acuerdo, es más, me parece un error muy grave. C y C++ son lenguajes diferentes.
desorden