题目:
另一种方法是通过getline函数读入整个输入行,这种情况下可以不使用getch和ungetch函数。请运用这一方法修改计算器程序。
自我解答:
getline函数可以一次读入一行,然后把这一行的内容保存到数组中,这样就可以通过控制数组的下标来获取输入中的运算符或操作数。
源程序如下:
#include <stdio.h>
#include <stdlib.h> /* to use atof() */
#define MAXOP 100
#define NUMBER '0'
int getop(char []);
void push(double);
double pop(void);
int main()
{
int type;
double op2;
char s[MAXOP];
while((type = getop(s)) != EOF)
{
switch (type)
{
case NUMBER:
push(atof(s));
break;
case '+':
push(pop() + pop());
break;
case '*':
push(pop() * pop());
break;
case '-':
op2 = pop();
push(pop() - op2);
break;
case '/':