Ciao a tutti!!
Il mio problema, stavolta, è nel main. Dovrebbe visualizzare un menu che va a svolgere varie operazioni su un albero. Tutte le operazioni sembrano funzionare discretamente, a parte quella di inserimento; il problema sembra essere proprio nell'uso delle funzioni scanf e fgets (o gets indifferentemente).
In pratica, dalle printf di controllo, sembra venir fuori che quando scelgo l'opzione 1 e premo invio, il carattere INVIO viene memorizzato già nella stringa word; per questo, viene inserito il valore 0 nel nodo. Come mai? la gets non gestisce anche il carattere newline? Come si può ovviare al problema?codice:while (1) { fputs("1. Inserisci elementi in sequenza: \n", OUTPUT); fputs("2. Print tree: \n", OUTPUT); //[...] fputs("0. Exit: \n", OUTPUT); scanf("%d", &choice); switch(choice) { while ( gets(word)) { // fprintf(OUTPUT, "\nElemento: "); printf("string = %s\n", word); //Ho inserito due printf per controllare cosa stampava value = atoi(word); printf("value = %d\n", value); tree = add(value, tree); } break; }
Grazie mille a tutti per l'aiuto![]()

Rispondi quotando