Witam
Chciałem napisać program który odczytuje słowa z pliku
PLIK :
mother matka
father ojciec
i słowa po ang wczytuje do listy 1 a po polsku do drugiej listy. Program skompilował się ale niestety gdy chce wypisać listy wyświetla się mi ciąg cyfr. Czy mógłby mi ktoś pomóc ?
typedef struct list{
struct list *next,*prev;
char key[30];
}lista;
void push(lista **head,char x[]){
lista *nowy=(lista*)malloc(sizeof(lista));
lista *tmp=(lista*)malloc(sizeof(lista));
nowy->key == x;
nowy->next = NULL;
if(head) {
tmp=head;
while(tmp->next) tmp=tmp->next;
tmp->next=nowy;
nowy->prev = head;
}
else {
head=nowy;
tmp->prev=NULL;
}
}
void show(lista *head){
while(head) {
printf("%d",head->key);
head=head->next;
}
}
int main(void){
FILE *plik;
int c;
char z[2] = "";
char podstawa[30] = "";
lista *head1=NULL,*head2 = NULL;
char k[30]= "";
if ((plik=fopen("C:/test/test.txt", "r+"))==NULL) {
printf ("Nie mogę otworzyć pliku test.txt do zapisu!\n");
exit(1);
}
while((c=fgetc(plik))!=EOF){
if ((c!='\t')&&(c!='\n')){
*z=c ;
strcat(podstawa,z);
}
else if (c=='\t'){
push(&head1,podstawa);
strcpy(podstawa,k);
}
else if (c=='\n'){
push(&head2,podstawa);
strcpy(podstawa,k);
}
}
show(head1);
show(head1);
printf("%s",podstawa);
return 0;
}