誰でも unetch の目的を説明できますか? これは、逆ポーランド電卓を作成する 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 の三項演算子を削除しました。)