Salve, ho fatto questo esercizio con i file ma quando compilo non stampa niente.
Quando ho provato un inserimento in testa peró ha funzionato
Qualcuno riesce a aiutarmi??
#include <stdio.h>
#include <stdlib.h>
#define maxlen 50
struct elem {
int k;
struct elem *next;
};
struct elem *nuovoElemento(int k){
struct elem *nuovo= (struct elem *)malloc(sizeof(struct elem));
nuovo->k=k;
nuovo->next=NULL;
return nuovo;
}
struct elem *insElemInCoda(struct elem *top,int k){
struct elem *nuovo= nuovoElemento(k);
if (top==NULL) return nuovo;
struct elem *curr=top;
while (curr->next!=NULL) curr=curr->next;
curr->next=nuovo;
return top;
}
void stampaLista(struct elem *top){
while (top!=NULL) {
printf("%d -->",top->k);
top=top->next;
}
printf("NULL\n");
}
struct elem *eliminaLista(struct elem *top){
struct elem *c;
while (top != NULL){
c=top;
top=c->next;
free(c);
}
return top;
}
int main()
{
char nomefile[maxlen];
int x;
struct elem *top;
FILE *fp;
printf("Dammi il nome del file da leggere:");
scanf("%s",nomefile);
fp=fopen(nomefile,"r");
if(fp!=NULL){
while(fscanf(fp,"%d",&x)>0){
top=insElemInCoda(top,x);
}
fclose(fp);
stampaLista(top);
top=eliminaLista(top);
}
else printf("File non trovato!");
return 0;
}