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 への非 const 参照にバインドすることはできません。ch の型を int に変更すれば問題ありません。

于 2012-12-04T23:57:25.923 に答える
1

ch を表す整数を pop に渡し、整数から返された結果に従って ch を設定します。

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