Siemka. Mam zadanko żeby wczytać z pliku 3 dane do listy dynamicznej 1 kierunkowej. I Następnym krokiem zadania jest : "Po odczytaniu odwróć porządek elementów w liście dynamicznej, tak aby zaczynała się od ostatniego wczytanego elementu, a kończyła na pierwszym." Nie mam zielonego pomysłu jak to odwrócić. Byłbym wdzięczny za jakiekolwiek wskazówki.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
#include<ctype.h>
#define N 5
struct student
{
int indeks;
char nazwisko[30];
float ocena;
struct student *nast;
};
int main()
{
char f[20]; //nazwy pllikow
//char wynik[20];
printf("Prosze podac nazwe pliku z danyymi(nazwa+rozszerzenie) :");
scanf("%s", f);
/*printf("Prosze podac nazwe pliku wynikowego(nazwa+rozszerzenie) :");
scanf("%s", wynik);*/
struct student *wsk, *glowa = NULL;
int indeks;
char nazwisko[30];
float ocena;
//plik z danymi otwieranie
FILE* stream;
if ((stream = fopen(f, "r")) == NULL)
{
printf("Pliku z danymi nie udalo sie otworzyc.\n");
return 0;
}
else
printf("Plik z danymi udalo sie otworzyc.\n");
//plik wynikowy otwieranie
//FILE* stream1;
//if ((stream1 = fopen(wynik, "w")) == NULL)
//{
// printf("Pliku z wynikami nie udalo sie otworzyc.\n");
// return 0;
//}
//else
// printf("Plik z wynikami udalo sie otworzyc.\n");
////////////////////////////////////////////////////////////////////////////////
putchar('\n\n');
fscanf(stream, "%d %s %f", &indeks, nazwisko, &ocena);
while (!feof(stream)) {
if (glowa == NULL)
glowa = wsk = malloc(sizeof(struct student));
else {
wsk->nast = malloc(sizeof(struct student));
wsk = wsk->nast;
}
wsk->indeks = indeks;
strcpy(wsk->nazwisko, nazwisko);
wsk->ocena = ocena;
wsk->nast = NULL;
fscanf(stream, "%d %s %f", &indeks, nazwisko, &ocena);
}
putchar('\n\n');
/////////////////////////////////////////////////////////////////////////////////
if (fclose(stream)) //zamykanie pliku z danymi
printf("Plik z danymi nie zostal zamkniety.\n");
else
printf("Plik z danymi zostal zamkniety.\n");
//if (fclose(stream1)) //zamykanie pliku z wynikami
// printf("Plik z wynikami nie zostal zamkniety.\n");
//else
// printf("Plik z wynikami zostal zamkniety.\n");
printf("\nAutor: Bartosz Rozanski.\n");
return 0;
}