Sortowanie danych w pliku txt

0

Witam,

Napisałem program, który zawartość dwóch plików txt kopiuje do trzeciego pliku (również txt). Dodatkowo, mam za zadanie posortować zawartość (tylko cyfry) pliku wynikowego (u mnie plik3.txt) za pomocą bubblesort. Niestety wszystkie próby wstawienia funkcji sortowania kończą się niepowodzeniem. Wnioskuję, że zawartość pliku plik3.txt muszę wczytać do tablicy, tablicę posortować i przesłać ją z powrotem do pliku txt. Proszę o pomoc z wstawieniem do programu funkcji sortowania :)

 
#include <stdio.h>
                       
int main()
{
    FILE *f1,*f2,*f3;
    int ch, ch1, ch2, ch3; 
    f1=fopen("plik1.txt","r"); 
    f2=fopen("plik2.txt","r");
    if(f1==0)
    {
        printf("\nPlik nie istnieje!\n");
        system("pause");
        exit(1);
    }
    
    if(f2==0)
    {
        printf("\nPlik nie istnieje!\n");
        system("pause");
        exit(1);
    }
    f3=fopen("plik3.txt","w");  
    
    while((ch=getc(f1))!=EOF)
        putc(ch, f3);
    while ((ch1=getc(f2))!=EOF)
          putc(ch1, f3);
        
    printf("Pliki scalono. Nazwa pliku wynikowego to [plik3.txt]\n");
    fclose(f3);
    printf("\nZawartosc pliku [plik3.txt] to: ");
    f3=fopen("plik3.txt","r"); 
    while((ch2=getc(f3))!=EOF)
        printf("%c",ch2);
        printf("\n\n\n");
             
    fclose(f1);
    fclose(f2);
    fclose(f3); 

    system("pause");
    return 0;
}
0

Dodam, że pliki źródłowe zawierają tylko cyfry :)

0

Nie napisałeś w jaki sposób ma być sortowana zawartość.

Powinieneś wczytać wszystkie elementy (słowa/linie czy co tam innego, to co chcesz sortować) do tablicy, najpierw z jednego pliki, później z drugiego (obydwa do jednej tablicy). Następnie posortować tablicę. Na koniec zapisać.

Czy przypadkiem w plikach wejściowych dane nie są już posortowane? Wtedy wystarczy je scalić, bez wczytywania wszystkiego do tablicy i sortowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1