Ciao ragazzi,
Ho provato a elaborare il programma più o meno come lo ha descritto minomic ,ma senza ottenere risultati positivi . Probabilmente continuo a fare degli errori, sapresete dirmi dove?
Il programma è il seguente:
void elimina(Rubrica *mainptr){
//inizializzo le variabili
FILE *fptr;
FILE *nptr;
Rubrica *curr=NULL;
Rubrica *agg=NULL;
char titolo[30];
curr=mainptr;
agg=mainptr;
//apro i file
if((nptr=fopen("aggiorna.txt","w"))==NULL){
printf("errore apertura file aggiorna.txt\n");
exit(EXIT_FAILURE);
}
if((fptr=fopen("rubrica.txt","r+"))==NULL){
printf("errore apertura file rubrica.txt\n");
exit(EXIT_FAILURE);
}
printf("inserisci il nome da eliminare\n");
scanf("%s",titolo);
//controllo riga per riga fino a fine file "rubrica.txt"
while(!feof(fptr)){
fscanf(fptr,"%[^,],%s",curr->nome,curr->numero);
if((strcmp(curr->nome,titolo))!=0){
fprintf(nptr,"%s,%s\n",curr->nome,curr->numero);
}
curr=curr->succ;
}
//aggiorno il file "rubrica.txt"
while(!feof(nptr)){
fscanf(nptr,"%[^,],%s",agg->nome,agg->numero);
fprintf(fptr,"%s,%s\n",agg->nome,agg->numero);
agg=agg->succ;
}
fclose(fptr);
fclose(nptr);
}
la struct è la seguente:
struct rubrica{
struct rubrica *succ;
char *nome;
char *numero;
};
typedef struct rubrica Rubrica;