Lo siento es que soy nuevo aquí.
Aquí lo tenéis.
Aquí lo tenéis.
Código (c) [Seleccionar]
bool guardat, espai;
char i;
FILE *ficher;
guardat = false;
espai = true;
ficher = fopen("records.txt" ,"r");
if (ficher != NULL)
{
fscanf (ficher, "%c", &i);
if (i == '\0')
{
espai = false;
}
fclose(ficher);
}
ficher = fopen("records.txt" ,"a");
if (ficher != NULL)
{
if (espai)
{
fprintf(ficher, "\n");
}
fprintf(ficher,"%d-%d-%d", jugador.fecha.dia, jugador.fecha.mes, jugador.fecha.anyo);
fprintf (ficher, "\t");
fprintf(ficher,"%d", jugador.record);
fprintf (ficher, "\t");
fprintf(ficher,"%s", jugador.nombre);
printf ("\n");
fclose (ficher);
guardat = true;
}
else
{
return guardat;
}
return guardat;
Por ahora he ido avanzando y tengo todo esto pero me sigue fallando en imprimir las cosas y esto me vuelve loco:
int MaxAnterior = 0;
int puntuacionMax = 0;
int puntuacionMax2 = 0;
int puntuacion = 0;
char caracters;
int records = 0;
int cont = 0;
int i, c, aux;
char data[20];
int MAXIM = 0;
FILE *ficher;
system("cls");
c = 0;
printf ("\nFECHA PUNTUACION NOMBRE");
printf ("\n------------------------------------------------");
ficher = fopen("records.txt" ,"r"); /* Contador de records */
if (ficher != NULL)
{
while ((i = fgetc(ficher)) != EOF)
{
if (i == '\n')
{
records = records + 1;
}
}
records = records + 1;
fclose (ficher);
}
else
{
printf("Error");
}
do
{
puntuacionMax2 = 0;
ficher = fopen("records.txt" ,"r"); /* Vizualitzar la puntuació màxima */
if(ficher!=NULL)
{
while(!feof(ficher))
{
fscanf(ficher,"%c",&caracters);
if(caracters == '\t')
{
fscanf(ficher,"%i",&puntuacionMax);
if (puntuacionMax == MaxAnterior)
if((puntuacionMax > puntuacionMax2) && (puntuacionMax != MaxAnterior))
{
puntuacionMax2 = puntuacionMax;
}
fscanf(ficher, "\n");
}
}
fclose(ficher);
}
ficher = fopen("records.txt" ,"r"); /* Imprimir els records */
if (ficher != NULL)
{
while(!feof(ficher))
{
c = 0;
caracters = '\n';
while (caracters != '\t')
{
fscanf(ficher, "%c", &caracters);
data[c] = caracters;
c = c + 1;
}
fscanf (ficher, "\t");
fscanf(ficher, "%i", &puntuacion);
if(puntuacion == puntuacionMax2)
{
aux = c;
c = 0;
printf ("\n");
while (c < aux)
{
printf("%c",data[c]);
c++;
}
printf ("%i" ,puntuacion);
printf ("\t");
while (caracters != -1)
{
caracters = fgetc(ficher);
printf ("%c", caracters);
}
cont = cont + 1;
MaxAnterior = puntuacionMax2;
if (MaxAnterior > MAXIM)
{
MAXIM = MaxAnterior;
}
}
else
{
while (caracters != '\n')
{
fscanf(ficher,"%c", &caracters);
}
}
}
fclose (ficher);
}
else
{
printf("Error");
}
}while (cont != records-1);
printf ("\n------------------------------------------------\n");
printf("Records: %i\n", records);
printf("Puntuacion max: %i\n\n", MAXIM);