У меня есть ввод stdin, например, «33 44 55 + 66 * + =» (т. Е. Обратная польская запись , RPN), и я использую следующие коды для его анализа.Но scanf ("% d") читает '+' и отбрасывает его, как отменить оператор и заставить его читать scanf ("% c")?Каков наилучший способ решения проблемы.Спасибо.
while ((reta = scanf("%d", &operand)) == 1 || (retb = scanf(" %c ", &operator)) == 1) {
if (reta == 1) push(exprStack, operand);
else if (retb == 1) {
operand = pop(exprStack);
/* function pmtd executes some basic calculation, i.e., plus, minus, times and divide */
push(exprStack, pmtd(operator, pop(exprStack), operand));
}
}