No me abre el archivo

Iniciado por comemelguevo, 20 Enero 2016, 20:49 PM

0 Miembros y 1 Visitante están viendo este tema.

comemelguevo

Hola buenas tengo que hcaer un programa que lea el nombre de un fichero, para poder trabajar con él, mi problema es que jamás me abre ese archivo ponga lo que ponga, el directorio es correcto, asi que era por si alguno sabíais o veíais que fallaba gracias.

int main(){
bool si=true;
const int MAX = 19;
const int MAXI = 120;
const char hola[MAXI] = "../../datos/subtitulos/";
char aux[MAXI];
while(si){
char NombreFichero[MAXI];
cout << "Un fichero de subtitulos(de practicasPROG1/datos/subtitulos): " << flush;
cin >> NombreFichero;
strcpy(aux,hola);
strcat(aux,NombreFichero);
ifstream z;
z.open(aux);
if(z.is_open()){
cout << "El fichero " << NombreFichero << "ha sido leido y contiene "
<< contarSubtitulos(NombreFichero) << "subtitulos que han sido leidos" << endl;
ordenes();
char d[MAX];
char f[MAX];
int e;
int g;
cout << "orden?";
cin >> d >> f >> e >> g;
convertir(d);
convertir(f);
operaciones(d, f, e, g, NombreFichero);
if(strcmp(d,"fin")==0){
si=false;
}
else if (strcmp(d,"fichero")==0){
NombreFichero[MAX]=d[MAX];
strcat(aux,NombreFichero);
ifstream z;
z.open(hola);
}
}
else{
cout << "El fichero " << NombreFichero << " no ha podido ser leido"
<< endl;
}
}
}

MAFUS

Haz que el programa te escriba toda la cadena aux justo después de strcat(aux,NombreFicher); así sabrás que se ha intentado abrir. También puedes hacer que te escriba el valor devuelto por z.is_open() para ver si lo ha abierto.

comemelguevo

Cita de: MAFUS en 20 Enero 2016, 21:27 PM
Haz que el programa te escriba toda la cadena aux justo después de strcat(aux,NombreFicher); así sabrás que se ha intentado abrir. También puedes hacer que te escriba el valor devuelto por z.is_open() para ver si lo ha abierto.
Si si si intentarlo lo intenta, pero jamás me lo abre y eso es lo que no entiendo.

MAFUS

Si no me equivoco tendrias que pasar z a contarSubtitulos porque con solo el nombre del archivo no lo podras abrir para leer. Además, si ja tienes un objeto del fichero abierto ¿para que hacer otro?