Apertura de fichero .txt

BEDI

Porque no me funciona esto:

if((f_alianza=fopen("C:\Vendetta Inactivos\alianza.txt","r"))==NULL)

{printf("\n\nProblema con la apertura del fichero alianza.txt");
getch ();
return 0;
}

while (fscanf(f_alianza,"%s%s%d%d", a[cont].jugador, a[cont].rango,
&(a[cont].puntuacion), &(a[cont].n_edificios))==4)

{
cont++;
}

/Printf de prueba para comprobar que guarda bien los datos/

printf ("%s%s%d%d", a[cont-1].jugador, a[cont-1].rango,
&(a[cont-1].puntuacion), &(a[cont-1].n_edificios));

No da ningun error de compilacion, y al ejecutarlo se queda en el mensaje de error al abrir el fichero. El archivo C:\Vendetta Inactivos\alianza.txt lo tengo creado

LOc0

Falla porque el nombre del directorio tiene espacios.

Prueba con:

if((f_alianza=fopen("\"C:\Vendetta Inactivos\alianza.txt\"","r"))==NULL)

Salu2 ;)

BEDI

Tambien me falla :/

Si quito el espacio del directorio(tb en el programa), sigue fallando

LOc0

No tendría por qué ser el motivo, pero prueba con:

f_alianza=fopen("\"C:\Vendetta Inactivos\alianza.txt\"","r");

if(f_alianza==NULL)
{

}

Salu2 ;)

thrazz

O prueba a poner el nombre del directorio como si fuese de MS-DOS, en este caso C:\VENDET1\blablabla.

BEDI

Nada, tampoco le apetece abrirlo

maRc

¿Y si pones una \ antes de los espacios?

BEDI

He quitado el espacio en la carpeta para evitar problemas
Si lo compilo con Dev-C++ no me da ningun error
Si lo compilo con el Borlan C 3.1, no me da errores, pero al ejecutar me pone:

Bad object file record in module FINAV2.OBJ

LOc0

Prueba con r+, a lo mejor suena la flauta...

Salu2 ;)

BEDI

No, no suena ¬¬ jeje
Estas cosas me desesperan...

LOc0

Prueba con otro fichero de otro directorio.

Salu2 ;)

r2d2rigo

Tiene que ser obligatoriamente en C? Porque si no podrias usar los iostreams de C++ y te resolveria bastante la vida :P

BEDI

Vale, ya esta solucionado..... me da verguenza decir lo que era jeje

Resulta que el archivo se llamaba alianza.txt.txt ¬¬

Gracias a todos :)

shairer

eso nos paso a todos alguna vez no?.....

BEDI

Bueno, ahora que ya me lo abre, tengo otro problema, esta vez con la recogida de datos. Los dos primeros strings si que me los coje, pero los datos numericos no me los pilla
En el .txt tengo la siguiente informacion: hola capo 56 67

typedef struct
{char jugador[30];
char rango[30];
int puntuacion;
int n_edificios;
}t_jugadora;

......
while(fscanf(f_alianza,"%s %s %d %d", a[cont].jugador,a[cont].rango,
&(a[cont].puntuacion),&(a[cont].n_edificios))==4)
{
cont++;
};

/Printf de prueba/
printf("\n\n\n%s,%s,%d,%d",a[cont-1].jugador,a[cont-1].rango,
&(a[cont-1].puntuacion),&(a[cont-1].n_edificios));

Resultado de ejecucion:
hola capo 2286860 2286864

Alguna nueva sugerencia?

HuNtR

te esta mostrando direcciones de memoria. Prueba kitando los & de las variables int en el printf.

BEDI

Efectivamente :)
Se nota que estoy aprendiendo ahora... Bueno, de aqui hasta que acabe el programa que me quiero hacer me surgiran mil preguntas asi que se las ire pregutnando a mi profesora o sino os abasallare a preguntitas tontas como estas

bueno gracias

Usuarios habituales

  • BEDI
  • HuNtR
  • shairer
  • r2d2rigo
  • LOc0
  • maRc
  • thrazz