Ich versuche, den Operator >>, um eine Überlastung ein einzelnes (erstellt mit enum Symbol {e,a,b,c,d};
) Symbol zu lesen:strchr Verwendung zu überlasten >>
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;
}
Aber dies liest einige Müll (Zahlen) statt, was ich Suche nach, was zu einer Segmentierung Fehler beim Versuch, es mit meiner < < Überladung zu drucken, was mache ich falsch? Edit: Oh, und natürlich habe ich using namespace std;
am Anfang hinzugefügt, gleich mit einschließlich iostream
und cstring
.
Nur neugierig, welches Problem möchten Sie lösen? – Incomputable
Dies ist Teil eines größeren Projekts für meine Object Programming Kurs an einer Universität, ich muss Symbole lesen, um dann Operationen an ihnen mit einer Additionstabelle usw. –