Foros del Web » Programación para mayores de 30 ;) » C/C++ »

manejo de cadenas char c++

Estas en el tema de manejo de cadenas char c++ en el foro de C/C++ en Foros del Web. Ke tal??!!! tengo un problema en c++ con el manejo de cadenas char y argumentos, es el siguiente: quiero hacer un programa que lea el ...
  #1 (permalink)  
Antiguo 03/01/2009, 06:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 15 años, 11 meses
Puntos: 0
Pregunta manejo de cadenas char c++

Ke tal??!!!

tengo un problema en c++ con el manejo de cadenas char y argumentos, es el siguiente:

quiero hacer un programa que lea el nombre de un archivo, lo abra y luego le añada el sufijo "_out" y lo guarde. He hecho esto pero me da errores de compilación y no sé cómo solucionarlo:

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

....

FILE *in;
char cad_in[MAX_PATH] = "";
char cad_out[MAX_PATH] = "";
int l_cad_in;

in = fopen(argv, "rb");
fclose(in);

cad_in = strtok(argv, "./");
l_cad_in = strlen(cad_in);
cad_out = strcat(cad_in[l_cad_in - 1], "_out");

out = fopen(cad_out, "wb");
fclose(out);
}


Agradezco vuestra ayuda. Sé que no es muy complicado pero estoy aprendiendo c++ y todavía estoy un poco verde

A propósito: estoy usando Dev-c++
  #2 (permalink)  
Antiguo 05/01/2009, 10:57
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Respuesta: manejo de cadenas char c++

Bueno, para empezar deberias poner el codigo completo.
No sabria decir si tu error es por no incluir string.h o stdlib.h.

Por otro lado, tu codigo apezar de que podria funcionar es malo.

Cita:
cad_in = strtok(argv, "./");
l_cad_in = strlen(cad_in);
cad_out = strcat(cad_in[l_cad_in - 1], "_out");
para que declaras cad_in y cad_out como cadenas si realmente nunca los usas como tal? Mas bien los usas como punteros. el problema es que como para C las cadenas y los punteros son hasta cierto punto equivalentes, el compilador no te va a dar errores.

Te recomendaria que primero hicieras un strcpy de argv a cad_in.
Usaras un puntero para usar strtok y luego cadout lo llenaras con la informacion que quieres.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.