Esercizio con i file

di il
1 risposte

Esercizio con i file

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;
}

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte