Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: luch21 en 13 Noviembre 2018, 00:16 am



Título: ordenar por orden alfabetica archivo txt en C
Publicado por: luch21 en 13 Noviembre 2018, 00:16 am
Hola! Tengo que ordenar alfabeticamente un archivo txt dentro de un TDA y lo que hice no me esta funcionando, compila y ordena pero algunos nombres desaparecen en el archivo y en la hora de mostrar por consola lo muestra mal. Les adjunto lo que hice, mando solo la funcion de ordenar que esta dentro del TDA. El archivo ya lo consegui cargar con todos los nombres desordenados.
Código:
FILE*archivo = fopen("Equipos y Jugadores.txt","r");
    int i,j;
    int contador = 0;
    char aux[20];

    if(archivo == NULL)
    {
        printf("No se ha podido abrir el archivo.\n");
        exit(1);
    }

    for(i = 0; !feof(archivo); i++)
    {
        fgets(n[i].nombres,20,archivo);
        contador++;
    }

    for(i = 0; i < contador; i++)
    {
        for(j = 0; j < contador; j++)
        {
            if(strcmp(n[j].nombres,n[j+1].nombres) > 0)
            {
                strcpy(aux,n[j].nombres);
                strcpy(n[j].nombres,n[j+1].nombres);
                strcpy(n[j+1].nombres,aux);
            }
        }
    }
    fclose(archivo);
    fopen("Equipos y Jugadores.txt","w");

    for(i = 0; i < contador; i++)
    {
        fprintf(archivo,"%s",n[i].nombres);
    }