Ciao a tutti!

Inizio col dire che sono agli inizi con la programmazione C quindi non me ne vogliate se il mio problema potrebbe risultarvi banale!


Il codice qui sotto funziona come dovrebbe sotto Windows (Dev C++), mentre su linux (gcc) mi da dei problemi.

La compilazione e' ok.
Il problema avviene quando inserisco l'opzione voluta:

Dopo averla inserita, viene eseguita l'istruzione associata all'opzione ma al ciclo successivo viene eseguita automaticamente l'istruzione default!

Faccio un esempio:
premo i, invio;
introduco un numero, invio;

a questo punto viene visualizzato di nuovo l'elenco delle opzioni ma automaticamente viene stampato "Errore di digitazione"! Successivamente mi stampa ancora l'elenco delle opzioni e posso quindi inserire un'altra opzione.


codice:
int main(){
	char opt;
	int d;
	tree root;
	tree trovato;
	root = maketree();
	
	printf("Benvenuto!\n");
	do {
		printf("(i): inserisci elemento\n(o): stampa l'albero ordinato\n(p): stampare l'albero in preordine\n(c): cerca un elemento\n(f): stampa le foglie\n(r): rimuove tutte le foglie\n(x): esce dal ciclo di esecuzione del programma.\n");
		fflush(stdin);
		scanf("%c",&opt);
		
		switch(opt){
				case 'i': {
					printf("Introduci un intero:");
					scanf("%d",&d);
					inserisci(&root, d);
					break;
				}
				case 'o': { stampaIN(root); break;}
				case 'p': { stampaPREO(root); break;}
				case 'c': {
					printf("Introduci un intero da cercare:");
					scanf("%d",&d);
					trovato = trova(root,d);
					if(trovato==NULL) printf("Elemento non trovato!");
					else printf("Elemento trovato!\nL'elemento ha valore: %d \n", trovato->elemento);
					break;
				}
				case 'f': { stampafoglie(root); break;}
				case 'r': { pota(&root); break;}
				case 'x': { distruggi(&root); break;}
				default : printf("Errore di digitazione\n");
		}
	} while(opt!='x');
	
	fflush(stdin);
	getchar();
	return 0;
}
Credo che mi sia dimenticato di svuotare qualche buffer..
ma non sono molto bravo con queste cose...

Qualcuno ha qualche suggerimento?


Grazie a tutti!