2017-02-16 2 views
1

Je travaille sur la calculatrice postfix pour lire opérateurs opérateurs arithmétiques. Un exemple d'entrée est 24 5 6 * +.Lire opérateur arithmétique en notation postfixe avec scanf

Ce code lu * et / opérateurs mais pas lire + et - opérateurs:

while(scanf("%d",&temp)) 
    ARRAY[i]=temp; 
scanf("%s",&operator); 
+1

Que faire si 'scanf' échoue et renvoie' -1'? Ce sera toujours vrai et vous économiserez des déchets en temp. –

+1

Copie possible de [C - Lecture d'opérateurs arithmétiques avec sscanf] (http://stackoverflow.com/questions/17246910/c-reading-arithmetic-operators-with-sscanf) –

+1

'scanf ("% c ", & opérateur); 'if' operator' est défini comme un simple 'char' –

Répondre

1

Les personnages + et - pourrait être le début d'un nombre comme « 3 » ou « -1 ». Donc, le code qui cherche un nombre consommera ces caractères. N'utilisez pas le code pour lire un nombre sauf si vous êtes certain de vouloir lire un nombre et que tout ce qui n'est pas un nombre est une erreur.