Mam za zadanie posortować linie w pliku(dni tygodnia) i choć czytałem wiele podobnych postów na różnych forach to jednak nadal nie potrafię rozwiązać tego problemu. Zastanawiałem się , czy nie zastosować sortowania bąbelkowego z if, ale każda moja próba kończy się fiaskiem.
0
0
Podziel sobie zadanie na mniejsze porcje i każdą spróbuj wyszukać osobno
- jak wczytać zawartość pliku do kontener?
- jak posortować zawartość kontenera?
- jak zapisać zawartość kontenera do pliku?
0
Obecnie jedynie udało mi się z jednego pliku stworzyć kilka z tym wyjątkiem, że każdy nowy plik ma dane ułożone chaotycznie. Z tego co czytałem muszę stworzyć osobną funkcję, która zajmie się tylko sortowaniem? Nie wiem tylko jak.
struct dane
{
string godzina;
string dzien;
string grupa;
string nazwisko;
string przedmiot;
dane* nast;
};
typedef dane* lista;
lista glowa = NULL;
lista wsk = NULL;
void dodawanie(lista& glowa, string godzina, string dzien, string grupa, string nazwisko, string przedmiot)
{
glowa = new dane;
glowa->godzina = godzina;
glowa->dzien = dzien;
glowa->grupa = grupa;
glowa->nazwisko = nazwisko;
glowa->przedmiot = przedmiot;
glowa->nast = wsk;
wsk = glowa;
};
void zapisz(lista glowa)
{
lista kolejny;
kolejny = glowa;
while (kolejny != NULL)
{
fstream plik_wyjsciowy;
plik_wyjsciowy.open(kolejny->nazwisko + ".txt", ios::out | ios::app);
plik_wyjsciowy << kolejny->godzina << " ";
plik_wyjsciowy << kolejny->dzien << " ";
plik_wyjsciowy << kolejny->grupa << " ";
plik_wyjsciowy << kolejny->przedmiot << endl;
kolejny = kolejny->nast;
}
cout << "\n";
0
kitle napisał(a):
Obecnie jedynie udało mi się z jednego pliku stworzyć kilka z tym wyjątkiem, że każdy nowy plik ma dane ułożone chaotycznie. Z tego co czytałem muszę stworzyć osobną funkcję, która zajmie się tylko sortowaniem? Nie wiem tylko jak.
Nie musisz pisać własnej listy, bo jest już gotowa (std::list), nie musisz pisać własnego sortowania, bo jest już gotowe (lista ma metodę sort, dla innych kontenerów jest std::sort). Spróbuj tego poszukać i użyć.