salve
l'idea di base è quella di creare una lista di interi e stamparla su file di testo, il programma funziona ma quando apro il file.txt mi compaiono dei simboli strani, dove sbaglio?

codice:
#include <stdio.h>

struct elemento{
       int info;
       struct elemento *next;
       };
       
struct elemento *crealista(){
       char c;
       struct elemento *p;
       printf("Vuoi inserire degli elementi? \n");
       scanf("%c" , &c);
       if(c == 'n'){
           p=NULL;
            }
       else if(c == 's'){
            while(c == 's'){
            p=(struct elemento*)malloc(sizeof(struct elemento));
            printf(" inserisci elemento : ");
            scanf("%d" , & p->info);
            scanf("%c", &c);
            if( c == 'n' )
            p->next=NULL;
            else
            p->next=crealista();
            }
            }
            return (p);
            }
FILE *creaFile(struct elemento *p){
     FILE *fp;
     fp=fopen("rubrica.txt","a");
     while(p!=NULL){
     fputc(p->info,fp);
     p=p->next;
     }
     fclose(fp);
     return fp;
     }
     
         
         
main(){
       struct elemento *p;
       p=crealista();
       creaFile(p);
       }