[C con Clase] Trivial

Alejandro alepelexo en yahoo.es
Jue Sep 13 13:06:26 CEST 2007


Gracias por tu ayuda. Ahora uso fopen("puntuaciones.txt", "a"), pero el problema es distinto. Ahora me da un problema Windows, como si estuviera accediendo a algo que no puedo. Te paso el código de la función que crea el archivo, escribe en él, y lo cierra:

void GuardaResultado(int aciertos, char nick[50], char* resultado, char respuestas[][100])
{
     FILE *archivo;
     
     archivo = fopen("puntuaciones.txt", "a");
     
     fputs("Nick: ", archivo);
     fputs(nick, archivo);
     fputs("\nNumero de aciertos: ", archivo);
     fputs((char*)aciertos , archivo);
     fputs("\nResultado: ", archivo);
     fputs(resultado, archivo);
     fputs("\nRespuestas: \n\n", archivo);
     fputs(respuestas[0], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[1], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[2], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[3], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[4], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[5], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[6], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[7], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[8], archivo);
     fputs("\n\n", archivo);
     fputs(respuestas[9], archivo);
     fputs("\n\n---------------------------------------\n", archivo);
     
     fclose(archivo);
}


El problema que me dá es el típico: "Trivia.exe ha detectado un error y debe cerrarse. Informe a Microsoft..." El prolema es que creo saber dónde está el fallo pero no como solucionarlo. En el cuarto fputs(), escribo: "fputs((char*)aciertos, archivo);" y creo que el error está en converitr un int en un char*, pero es que no se como pasar el int al fichero de otra forma.

Gracias y un saludo, Alejandro.

El pasado 2007-09-11 18:52:54, Programante escribió:
 
P> Alejandro escribió:
P> > Muchas gracias por tu ayuda Programante. El programa va por buen camino pero, para comprobar las respuestas, tengo que guardarlas en un array. ¿Se puede hacer desde un archivo? Por ejemplo, en ese archivo guardas las respuestas correctas, el programa lo abre, y comprueba si son correctas. En caso de que se pueda, ¿binario o de texto? ¿Qué son los archivos de trivial para irc y como se usan?
P> >
P> > Gracias por tu ayuda y un saludo, Alejandro.
P> >   
P> Puedes almacenar la respuesta correcta para cada pregunta y mirar si 
P> acertó justo después de que conteste.
P> Son archivos de texto plano, una pregunta por línea, con el formato:
P> Tema©Autor«Pregunta*Respuesta
P> > Muchas gracias. Ahora tengo otro problema. Para poder guardar las puntuaciones de varios en el archivo de texto, debería empezar a escribir al final del archivo, pero no lo consigo. Cada vez que ejecuto el programa y guardo las puntuaciones, se me borran las del anterior. ¿Cómo hago para que no suceda esto y pueda guardar muchas puntuaciones a la vez?
P> >   
P> Usa fopen("Puntuaciones.txt", "a") en lugar de fopen("Puntuaciones.txt", 
P> "w")
P> O lee los datos del archivo y vuelve a escribirlos, si quieres 
P> actualizar la puntución de algún usuario que ya tenga entrada en el archivo.
P> _______________________________________________
P> Lista de correo Cconclase Cconclase en listas.conclase.net
P> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
P> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


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