[Konsole]String eingaben verbieten
-
Hallo,
ich habe ein großes Problem, das mich einfach nervt und einfach mein Programm unnutzbar macht. Wenn man beispielsweise so etwas schreibt:
int main() { int foo; cout <<"Geben Sie eine Zahl ein.\n"; cin >>foo; cout <<"Sie haben " <<foo <<" eingegeben.\n"; }Wenn man nun eine Zeichenkette oder ein einfaches Zeichen eingibt, dann landet man in einer Endlosschleife, die immer wieder "Sie haben [foo] eingegeben." anzeigt. Meine Frage dazu:
Gibt es eine Möglichkeit, Zeichenketteneingaben zu verhindern?Wenn man nun den Datentyp von foo auf string oder char ändert und ein Sonderzeichen, wie ä, ö oder ö eingibt, landet man auch in der Endlosschleife.
Gibt es dort eine Möglichkeit solche "Bugs" zu verhindern?Gruß C++H
-
int main() { int foo; cout <<"Geben Sie eine Zahl ein.\n"; if(!(cin >> foo)) cout<<"Falsche Eingabe!"; else cout <<"Sie haben " <<foo <<" eingegeben.\n"; }
-
Danke dafür! Nun brauche ich nur noch eine Möglichkeit die Sonderzeichen zu erlauben...
-
Muss man den Destruktur immer virtuell machen?
-
fdws schrieb:
Muss man den Destruktur immer virtuell machen?
Kann es sein, dass du im falschen Thread gelandet bist?
-
C++H schrieb:
Danke dafür! Nun brauche ich nur noch eine Möglichkeit die Sonderzeichen zu erlauben...
wie meinst du das?
wo denn? bei der eingabe? da ist alles erlaubt - aber dann wär es ja keine zahl mehr
bb
-
Soweit ich weiß darf ein String kein Sonderzeichen erhalten. Wenn ich aber ein Sonderzeichen eingebe, dann lande ich in der im Anfangspost beschriebenen Endlosschleife.
-
C++H schrieb:
Soweit ich weiß darf ein String kein Sonderzeichen erhalten. Wenn ich aber ein Sonderzeichen eingebe, dann lande ich in der im Anfangspost beschriebenen Endlosschleife.
Könntest du bitte ein Beispiel machen, dass dein Problem erläutert?
-
string eingabe; cout <<"Geben Sie einen Text ein.\n" cin >>eingabe; cout <<"Sie haben " <<eingabe <<" eingegeben.\n";Beispiel:
Eingabe ist: üöä
-
Da gibt es bei mir kein Problem.
Geben Sie einen Text ein. üöä Sie haben üöä eingegeben. Drücken Sie eine beliebige Taste . . . _
-
NemaProblema schrieb:
Da gibt es bei mir kein Problem.
Geben Sie einen Text ein. üöä Sie haben üöä eingegeben. Drücken Sie eine beliebige Taste . . . _Hast recht. Ich habe da wohl was durcheinandergebracht. Danke an euch alle für die Antworten!
-
C++H schrieb:
NemaProblema schrieb:
Da gibt es bei mir kein Problem.
Geben Sie einen Text ein. üöä Sie haben üöä eingegeben. Drücken Sie eine beliebige Taste . . . _Hast recht. Ich habe da wohl was durcheinandergebracht. Danke an euch alle für die Antworten!
und genau das ist der grund, wieso du ein kompilierbares minimal-bsp. erzeugen solltest, bevor du fragen stellst - positiver nebeneffekt: du hast deine antwort schneller... ^^
bb