Estoy teniendo problemas con el fichero para leer un valor especifico y compararlo con otro. La idea es que tengo un archivo de récords donde están guardados en cada linea la fecha, la puntuación y el nombre. Tengo que imprimir este fichero en la pantalla, lo hago con el fgetc y putchar pero el problema es que tengo que imprimirlos en orden, es decir, el primero con la puntuación más alta, luego la segunda puntuación más alta y así hasta el final. Luego tengo que imprimir la cantidad de récords imprimidos (esto lo hice con un contador) y la puntuación máxima de los récords imprimidos.
Aqui os dejo lo que tengo por ahora. (lo intente con tabla de caracteres pero no supe ni como comenzar)
system("cls");
int i, cont_ficher, cont, num;
int aux[20];
FILE *ficher;
cont_ficher = 0;
cont = 0;
printf ("\nFECHA PUNTUACION NOMBRE");
printf ("\n---------------------------------------\n");
ficher = fopen("records.txt" ,"r");
if (ficher != NULL)
{
while ((i = fgetc(ficher)) != EOF)
{
if (i == '\n')
{
cont_ficher = cont_ficher + 1;
}
}
cont_ficher = cont_ficher + 1;
fclose (ficher);
}
else
{
printf("Error");
}
do
{
ficher = fopen("records.txt" ,"r");
if (ficher != NULL)
{
while ((i = fgetc(ficher)) != EOF)
{
if (i == 9)
{
while ((i = fgetc(ficher)) != 9)
{
}
}
}
fclose (ficher);
}
else
{
printf("Error");
}
ficher = fopen("records.txt" ,"r");
if (ficher != NULL)
{
while ((i = fgetc(ficher)) != EOF)
{
putchar(i);
}
cont = cont + 1;
fclose (ficher);
}
else
{
printf("Error");
}
}while (cont != cont_ficher);
printf ("\n---------------------------------------\n");
printf ("");
Tambien os dejo el fichero:
3-2-2019 39000 NOMBRE
3-2-2019 21000 NOMBRE (Estan separados por tabulaciones)
3-2-2019 18000 NOMBRE (FECHA \t PUNTUACION \t\t NOMBRE)
Aqui os dejo lo que tengo por ahora. (lo intente con tabla de caracteres pero no supe ni como comenzar)
system("cls");
int i, cont_ficher, cont, num;
int aux[20];
FILE *ficher;
cont_ficher = 0;
cont = 0;
printf ("\nFECHA PUNTUACION NOMBRE");
printf ("\n---------------------------------------\n");
ficher = fopen("records.txt" ,"r");
if (ficher != NULL)
{
while ((i = fgetc(ficher)) != EOF)
{
if (i == '\n')
{
cont_ficher = cont_ficher + 1;
}
}
cont_ficher = cont_ficher + 1;
fclose (ficher);
}
else
{
printf("Error");
}
do
{
ficher = fopen("records.txt" ,"r");
if (ficher != NULL)
{
while ((i = fgetc(ficher)) != EOF)
{
if (i == 9)
{
while ((i = fgetc(ficher)) != 9)
{
}
}
}
fclose (ficher);
}
else
{
printf("Error");
}
ficher = fopen("records.txt" ,"r");
if (ficher != NULL)
{
while ((i = fgetc(ficher)) != EOF)
{
putchar(i);
}
cont = cont + 1;
fclose (ficher);
}
else
{
printf("Error");
}
}while (cont != cont_ficher);
printf ("\n---------------------------------------\n");
printf ("");
Tambien os dejo el fichero:
3-2-2019 39000 NOMBRE
3-2-2019 21000 NOMBRE (Estan separados por tabulaciones)
3-2-2019 18000 NOMBRE (FECHA \t PUNTUACION \t\t NOMBRE)