|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Apr 2009
Messaggi: 13
|
[C] Problema con programma
Qualcuno mi aiuti per piacere
L'output di questo programma non mi convince... Il do/while non mi da il risultato che credevo mi dovesse dare: cioè subito dopo "Inserire il carattere di End of File per terminare, altrimenti premere Invio:" mi esce scritto anche "Inserire operatore aritmetico: " (cosa che non dovrebbe succedere, in quanto deve permettere la chiusura della lista) e non riesco a capire il motivo. Come dovrei fare per eliminare questo problema?!? Codice PHP:
Ultima modifica di danixxx89 : 22-04-2009 alle 21:04. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
Dai un'occhiata a fflush().
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
probabilmente ti rimane nel buffer un \n che ti "annulla" lo scanf. Non usare fflush perchè è una funzione che serve unicamente sugli stream di output e il comportamento su quelli di input è indefinito. Ti consiglio di usare getc, fgets e non scanf!
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
È vero... in effetti fflush è controindicata per gli stream di input ma alla carlona la si usa... e mi era uscito di mente il fatto che questo suo uso è deprecato...
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
Totalmente d'accordo con te, anche io sono un purista e preferisco usare linguaggi e architetture per come sono state concepite evitando il più possibile un uso approssimativo... che spesso poi genera errori inattesi e peggiora le performance.
|
|
|
|
|
|
#7 | |
|
Junior Member
Iscritto dal: Apr 2009
Messaggi: 13
|
Quote:
Codice PHP:
|
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
a occhio ci sono almeno 2 errori. Scusa per curiosità, che compilatore e che sistema operativo usi? Se usi gcc ti conviene utilizzare il flag -Wall per visualizzare i warning, perchè questi errore ti verrebbero segnalati. Ad ogni modo:
Codice:
scanf("%c", &nptr->operation);
Codice:
scanf("%f", &nptr->operands);
|
|
|
|
|
|
#9 | |
|
Junior Member
Iscritto dal: Apr 2009
Messaggi: 13
|
Quote:
Comunque come os uso windows e per scrivere i programmi in c uso dev-c++. p.s.: ho definito operation come un char[0] perchè inizialmente avevo un'altra intenzione. Grazie ancora |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:46.




















