Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ridens

Frischling

  • »ridens« ist der Autor dieses Themas

Beiträge: 47

Beruf: Freiberuflicher Entwickler

  • Private Nachricht senden

1

07.09.2011, 11:59

C++-Kons.-Anwendung: Buchstaben-Eingabe verhindern

Hallöchen :)

Google war mir nicht wohlgesonnen, daher hier meine Frage, ob jemands weiß. Ich habe mich lediglich gefragt, ob man in einer C++-Konsolenanwendung eigentlich eine Möglichkeit hat, bei der Eingabe eines einzelnen Zeichens Buchstaben abzufangen und nur Zahlen zuzulassen, sodass die Eingabe in einen int gespeichert werden kann?

Danke im Voraus ;)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

07.09.2011, 12:01

Das ist sehr schwierig, da es in Standard C++ keine Möglichkeit gibt, die Eingabe zu verstecken (was Du mit ungültigen Zeichen tun müsstest) oder bereits vorhandene Zeichen wieder zu löschen (was Du tun müsstest, wenn Du die Rücktaste/Entfernen unterstützen wolltest).

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

3

07.09.2011, 12:02

Reguläre Ausdrücke mit Boost?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

07.09.2011, 12:05

Ich glaube, er will, dass man gar keine anderen Zeichen als Zahlen eintippen kann (Tastendruck wird dann einfach ignoriert).

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

5

07.09.2011, 12:10

Achso, klang für mich nur so, als wolle er sie beim einlesen ignorieren, damit er sicher sein kann, dass er einen korrekten integer hat.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

ridens

Frischling

  • »ridens« ist der Autor dieses Themas

Beiträge: 47

Beruf: Freiberuflicher Entwickler

  • Private Nachricht senden

6

07.09.2011, 12:48

Nein, David hatte recht. Ich meinte tatsächlich direkt die Unterdrückung der Eingabe. Um nach der Eingabe zu prüfen könnte man mit Casting rumspielen?

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

7

07.09.2011, 13:08

Eingaben könntest du so überprüfen:

C-/C++-Quelltext

1
2
3
int var;
if(!cin >> var)
[...] // Fehler


Du kannst auch mittels cin.ignore() und cin.get() arbeiten, um einzelne Zeichen zu ignorieren. Ansonsten gibt es noch atoi() bzw. itoa().

Werbeanzeige