Dovrei portare questo esercizio a breve e necessito di una mano...
prendere in input da un file i dati relativi a degli scrittori inserirli in una lista e fare in modo
che il campo id sia incrementato ad ogni inserimento;
Scrivere una funzione per creare un nuovo elemento di tipo scrittore.
Mettere l'elemento creato nella lista creata nel main e passata alla funzione insieme al puntatore
alla lista e rispettare l'ordine del contatore.
Stampare nel file output il primo record della lista maggiore di 5.
Devo attenermi alle seguenti funzioni:
void crea(FILE *, data**);
void scrivi_file(head,out);
e alla seguente struttura:
typedef struct lista{
int id;
char nome[20];
char cognome[20];
int numero_opere;
next successivo;
}lista;
typedef struct lista *next;
all'interno del main il prof ha creato la testa della struttura:
lista *head;
ora quello che non capisco io è come creare la struttura usando quei due ** nella funzione...aiuto.. grazie 1000
---------- Post added at 18:35 ---------- Previous post was at 18:16 ----------
ho provato a buttare giu un po di codice:
prendere in input da un file i dati relativi a degli scrittori inserirli in una lista e fare in modo
che il campo id sia incrementato ad ogni inserimento;
Scrivere una funzione per creare un nuovo elemento di tipo scrittore.
Mettere l'elemento creato nella lista creata nel main e passata alla funzione insieme al puntatore
alla lista e rispettare l'ordine del contatore.
Stampare nel file output il primo record della lista maggiore di 5.
Devo attenermi alle seguenti funzioni:
void crea(FILE *, data**);
void scrivi_file(head,out);
e alla seguente struttura:
typedef struct lista{
int id;
char nome[20];
char cognome[20];
int numero_opere;
next successivo;
}lista;
typedef struct lista *next;
all'interno del main il prof ha creato la testa della struttura:
lista *head;
ora quello che non capisco io è come creare la struttura usando quei due ** nella funzione...aiuto.. grazie 1000
---------- Post added at 18:35 ---------- Previous post was at 18:16 ----------
ho provato a buttare giu un po di codice:
Codice:
#include<stdio.h>
#include<stdlib.h>
typedef struct autore{
int id;
char nome[20];
char cognome [20];
int brani;
struct autore *next;
}autore;
void crea_l(FILE *,autore **);
int main(){
autore *start;
FILE *fp;
fp=fopen("01_ex.txt","w");
crea_l(fp,&start);
fclose(fp);
system("PAUSE");
return 0;
}
void crea_l(FILE *fp,autore **p){
autore nuovo,corr,prec;
char n[10];
int i;
printf("nome: ");
scanf("%s",n);
nuovo=malloc(sizeof(autore));
if(nuovo!=NULL){
for(i=0;i<3;i++){
nuovo->id=i;
nuovo->nome=n;
nuovo->next=NULL;
prec=NULL;
corr=*p;
while(prec!=NULL){
prec=corr;
corr=corr->next;
}
if(prec == NULL){
nuovo->next=*p;
*p=nuovo;
}
else{
prec->next=nuovo;
nuovo->next=corr;
}
}
}
41 C:\Users\Daniele\Desktop\prova esame2.c invalid type argument of `unary *'
42 C:\Users\Daniele\Desktop\prova esame2.c invalid operands to binary !=
44 C:\Users\Daniele\Desktop\prova esame2.c invalid type argument of `->'
55 C:\Users\Daniele\Desktop\prova esame2.c invalid operands to binary ==
mi da i seguenti errori...potreste aiutarmi, cortesemente???