1

我正在做一个程序来检查平衡的括号和括号等。我创建了一个 char 来存储信息,当我按下 char 时它可以工作,但它不允许我弹出。有谁知道我能做什么?我们的教授给了我们头文件,所以我不能在 pop/push 函数中将它从 int 更改为 char。但我很好奇我能做些什么来完成这项工作?

void push(int);
void pop(int &);

char ch,i;
IntStack x(50);
int count = 0;

while (fin>>ch)
{
if (ch == '[' || ch=='{' || ch=='(')
{
      x.push(ch);    //this works
  count++;
}

if (ch==']' || ch=='}' || ch==')')
{
  x.pop(ch);    //this brings an error, i also tried x.pop(ch&) and didnt work too
  count--;
}

}
4

2 回答 2

4

您不能将 char 绑定到对 int 的非常量引用。将 ch 的类型更改为 int 就可以了。

于 2012-12-04T23:57:25.923 回答
1

将表示 ch 的整数传递给 pop,然后根据从整数传回的结果设置 ch。

int PopVar;
Pop(PopVar);
ch = PopVar;
于 2012-12-05T00:05:45.277 回答