Witam,
Mam problem z odczytywaniem listy jednokierunkowej z pliku tekstowego, w którym na pozycjach nieparzystych są słowa angielskie a parzystych- polskie. Program wykłada sie już przy odczytywaniu, a ja nie mam już pomysłów co może być źle. Z góry dzięki za pomoc.
#include <stdio.h>
#include <stdlib.h>
typedef struct SLOWA
{
char* angielskieslowo;
char* polskieslowo;
struct SLOWA* next;
} slowa;
void DodajAngielski(char* wartosc, slowa* first)
{
slowa* temp = malloc(sizeof(slowa));
while (first->next != NULL) // przesuniecie na koniec listy
first = first->next;
strcpy(temp->angielskieslowo, wartosc); // dodanie na koncu listy
temp->next = NULL;
first->next = temp;
}
void DodajPolski(char* wartosc, slowa* first)
{
slowa* temp = malloc(sizeof(slowa));
while (first->next != NULL) // przesuniecie na koniec listy
first = first->next;
strcpy(temp->polskieslowo, wartosc); // dodanie na koncu listy
temp->next = NULL;
first->next = temp;
}
void DodajZPliku(slowa* first)
{
FILE* plik = fopen("wordlist.txt", "r");
{
int licznik = 1;
if (plik == NULL)
{
printf("Blad otwarcia pliku wordlist.txt!\n");
return 1;
}
while (!feof(plik))
{
char wartosc[30];
if (licznik % 2 != 0)
{
fscanf(plik, "%s", wartosc);
DodajAngielski(wartosc, first);
}
else
{
fscanf(plik, "%s", wartosc);
DodajPolski(wartosc, first);
}
}
fclose(plik);
}
}
void wyswietl_liste(slowa* first)
{
while (first != NULL)
{
printf("%s %s ", first->angielskieslowo, first->polskieslowo);
first = first->next;
}
}
int main()
{
slowa* first = malloc(sizeof(slowa));
DodajZPliku(first);
return 0;
}