谁能向我解释 ungetch 的目的?这来自 K&R 第 4 章,您在其中创建了一个逆波兰计算器。
我已经在没有调用 ungetch 的情况下运行了该程序,并且在我的测试中它仍然可以正常工作。
int getch(void) /* get a (possibly pushed back) character */
{
if (bufp > 0)
{
return buf[--bufp];
}
else
{
return getchar();
}
}
void ungetch(int c) /* push character back on input */
{
if (bufp >= BUFSIZE)
{
printf("ungetch: too many characters\n");
}
else
{
buf[bufp++] = c;
}
}
(我已经删除了 getch 中的三元运算符以使其更清晰。)