Problema rimozione elemento da lista [c]

di il
2 risposte

Problema rimozione elemento da lista [c]

Ciao a tutti devo fare un porgramma in linguaggio c che tra le altre cose cancelli un elemento da una lista caricata da un file di testo digitandola da tastiera, ma non riesco a trovare l'errore nel codice della funzione, quando lo mando in esecuzione sembra funzionare ma mi cancella tutti i dati nel file e non solo quello che dovrebbe eliminare anche se nel terminale me li fa vedere, ma realmente il file è vuoto. Qualcuno riesce ad aiutarmi? Grazie


void eliminaElemento(pElemento *pE) {

pElemento Elemento;
pElemento elementoPrec;
pElemento temp;

FILE *fp;

fp = fopen("prova.txt", "w");
printf("Inserisci il numero\n");
scanf("%s %lg %lg", identificativo, &reale, &immaginario);


/*elimina il primo nodo*/

if((strcmp((*pE)->identificativo, identificativo)== 0) && ((*pE)->reale== reale)
&& ((*pE)->immaginario==immaginario)) {

temp = *pE;
*pE = (*pE)->next;
free(temp);
} /*fine dell'if*/



else{

elementoPrec = *pE;
Elemento = (*pE)->next;
while(Elemento != NULL && (strcmp(Elemento->identificativo, identificativo)!= 0) && (Elemento->reale!= reale)
&& (Elemento->immaginario!=immaginario)) {

elementoPrec= Elemento;
Elemento = Elemento->next;
}
if(Elemento != NULL) {

temp = Elemento;
elementoPrec->next = Elemento->next;
free(temp);
}
}
fclose(fp);
}

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte