Ciao a tutti.
Ho un piccolo test da fare all'univ e ho un problema con questa funzione.
Devo leggere da standard input una sequenza di stringhe che possono essere numeri reali o operatori (la classica calcolatrice).
Negli hint il prof dice di usare la funzione scanf("%f",val) ma io mi chiedo perché "%f"? e quando trovo un operatore, ad esempio il "+"?
Io ho implementato già un sorgente funzionante con scanf("%s",val) ma ho fatto anche un'altra deroga alle specifiche del progetto: il prof non vuole che si usi un carattere di "fine calcolo" (ad esempio "=") e mi trovo nella situazione di non riuscire a capire quando scanf("%s", val) ha finito di leggere gli operatori. In pratica se non ho un carattere di "escape" scanf("%s",val) mi ripropone lo standard input per inserire ancora dati.
Per essere ancora più chiari il prof ci ha detto che l'input deve essere nella notazione polacca inversa, es. 4 2 + e il risultato deve essere 6. Il mio codice funziona se metto 4 2 + = perché se metto 4 2 + non riesco a capire quando il "+" è l'ultimo carattere.
Grazie a tutti.
Newbie-c
|