私は、単一の(enum Symbol {e,a,b,c,d};
で作成した)シンボル読み取るために>>演算子をオーバーロードしようとしている:>>
istream & operator >> (istream & is, Symbol & sym) {
Symbol Arr[]={e,a,b,c,d};
char ch;
is>>ch;
if (strchr("eabcd",ch))
sym=Arr[ch-'e'];
else {
is.unget();
is.setstate(ios::failbit);
}
return is;
}
をしかし、これは代わりに私が何であったかのいくつかのゴミ(番号)を読み込みます探して、私の< <過負荷でそれを印刷しようとするとセグメント違反につながる、私は間違って何ですか? 編集:ああ、もちろん、私はiostream
とcstring
を含むと同じように、開始時にusing namespace std;
を追加しました。
ch
ちょうど興味があります、あなたは解決したい問題はありますか? – Incomputable
これは、大学のObject Programmingコースのための大きなプロジェクトの一部です。記号を読んで追加表などで操作する必要があります。 –