Cześć,
Mam problem z programem, mianowicie mam za zadanie pobrać z pliku "tekst.txt" słowo po słowie oddzielone spacją i zapisać każde ze słów do węzła listy jednokierunkowej. I gdy pobieram z pliku słowo i zapisuje do zmiennej word , to gdy próbowałem wypisać to co pobiera fscanf to wszystko działa prawidłowo, ale gdy chcę to słowo przekazać w funkcji , aby utworzyć nowy węzeł w liście jednokierunkowej i przypisać to słowo do pola w strukturze , to gdy chcę wypisać całą listę , to w każdym węźle jest ostatni wyraz z tego pliku , a nie tak jak powinny być , to znaczy każde słowo zapisane w innym węźle. Siedzę już na tym drugi dzień i szukam po internecie ale nic nie pomaga.
Z góry dzięki za pomoc :)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct ListElement {
int data;
char *tekst;
struct ListElement * next;
} ListElement_type;
void push_front(ListElement_type **head, int number,char *slowo)
{
ListElement_type *current;
current=(ListElement_type *)malloc(sizeof(ListElement_type));
current->data=number;
current->tekst=slowo;
current->next=(*head);
(*head)=current;
}
void print_list(ListElement_type **head){
ListElement_type* curr=(*head);
while(curr!=NULL){
printf("%d %s\n",curr->data,curr->tekst);
curr=curr->next;
}
}
int main()
{
ListElement_type *head;
head = (ListElement_type *)malloc(sizeof(ListElement_type));
head=NULL;
FILE *plik=fopen("tekst.txt","r");
char word[20];
int i=1;
while(fscanf(plik,"%s",word)!=EOF){
push_front(&head,i,word);
i++;
}
print_list(&head);
fclose(plik);
return 0;
}