[C con Clase] No lectura de fichero de texto (Re: Error por variable no inicializada)

Vicent vginer en gmail.com
Sab Abr 10 12:49:44 CEST 2010


He continuado investigando.

A ver: el problema está en que, cuando ejecuto el archivo .EXE, la
rutina que abre el fichero de texto falla, y entonces los valores que
lee esa rutina no son leídos, claro.

La rutina es esta:

"""
void cosa_read_problem_ini_cond(Cosa *pb) {

// ---------------------------------------------------------------------------
// Rutina que lee de un fichero de texto el valor de los parámetros del
// modelo (_Cp_, _alpha_star_, _beta_star_ y _delta_star_) y los almacena
// en el lugar correspondiente dentro de la estructura de datos del problema.
// ---------------------------------------------------------------------------

    ifstream f ;

    double Cp = 1. ;
    double alpha_star = 0.05 ;
    double beta_star = 0.1 ;
    double delta_star = 0.945427792324736 ;

    // Intentamos abrir el fichero de texto :

    f.open("COSA_inicond.txt") ;

    // Leemos los parámetros del modelo en el mismo orden en que han sido
    // declarados, a partir de un fichero de texto :

    if(!f)
		cout << "error" << endl ;

	else {

        f >> Cp ;

        f >> alpha_star ;

        f >> beta_star ;

        f >> delta_star ;

        // Cerramos el fichero de texto :
        f.close() ;
	}

    // Tras la lectura, almacenamos los valores en el objeto Cosa :

    pb->ini_cond.Cp         = Cp ;
    pb->ini_cond.alpha_star = alpha_star ;
    pb->ini_cond.beta_star  = beta_star ;
    pb->ini_cond.delta_star = delta_star ;
}


"""

Pues el caso es que, cuando lo ejecuto paso a paso en modo depuración,
la rutina abre el fichero y lee los valores. En cambio, cuando lo
ejecuto directamente haciendo doble clic sobre el archivo generado
dentro de la carpeta "Debug", NO lo lee, porque ahora he comprobado
que se quedan guardados los valores por defecto: Cp = 1, etc.

No sé si tendrá que ver con el nombre del fichero... Lo cambiaré por
otro más sencillo.

¿Alguna otra idea de por dónde pueden ir los tiros? Gracias.

--
Vicent




Más información sobre la lista de distribución Cconclase