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

llennard

Frischling

  • »llennard« ist der Autor dieses Themas

Beiträge: 74

Wohnort: Kiel

  • Private Nachricht senden

1

09.11.2005, 11:33

Eingabe bei C++: "cin >>" -- Fehler!

Ich schreibe folgendes:

C-/C++-Quelltext

1
2
int a;
cin >> a;


Wenn man nun keine Zahl, sondern Buchstaben eingibt, gibt es einen Fehler. ???

Was kann man dagegen tun?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

09.11.2005, 12:10

Dir ist klar das du keinen Buchstaben in int direkt speichern kannst? Wenn es nur um einen Buchstaben/Zahl geht, dann nimm statt int char oder WCHAR.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

3

09.11.2005, 12:56

Zitat von »"Nox"«

Dir ist klar das du keinen Buchstaben in int direkt speichern kannst? Wenn es nur um einen Buchstaben/Zahl geht, dann nimm statt int char oder WCHAR.


Das ist ihm glaub ich schon klar.
Er will aber darauf anspielen, dass man einen User ja nicht davon abhalten kann falsche Eingaben zu machen.

@Hennard
http://faculty.ed.umuc.edu/~rmetz/How_To/atoi_function.htm

mfg Philipp

Anonymous

unregistriert

4

09.11.2005, 13:05

www.vokard.de

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

5

09.11.2005, 15:28

Eigentlich kann man nichts wirklich dagegen tun, einen Fehler gibts nicht.

Man könnte zwar prüfen ob es Buchstaben wären, das hätte aber keinen sinn weil 32 und Leerzeichen z.b. das selbe sind.

Wenn der Benutzer 32 eingeben würde, würde ein Fehler kommen, genauso wenn er ein Leerzeichen eingegeben hätte. Das ist nicht der Sinn.

Also weglassen

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

6

09.11.2005, 16:10

@nix da
dein link geht nüscht....

Für Programme die zu viel Zeit haben gäbs noch die möglichkeit die tatsächlichen tastatureingaben zu überprüfen.

oder was auch geht, is die eingabe als string entegen nehmen und dann zeichenweise in zahlen umszusetzen (zB nach ASCII tabellen oder ANSI oder was man halt brauch) so ham wir das in der schule mit VBasic gemacht. Sollte ja auch in C mit Konsole kein Prob sein....
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

7

09.11.2005, 16:27

Man sollte dem Benutzer einfach mal zumuten Zahlen von Buchstaben zu unterscheiden. Ich glaub das kann man durchaus tun, es gibt ziemllich dumme aber so dumme... nur sehr wenig ^^. Und selbst wenn, kommt Murks bei raus, kein Fehler. Also was kümmerts uns? Der Benutzer merkt schon alleine das da was nicht stimmt. Und probierts nochmal.

Man sollte aber eindeutig sagen was er eingeben soll, aber das hat nix mit dem Problem zu tun.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

09.11.2005, 16:31

@ lemminge auch wenn mich nix da jetzt hauen wird: atoi
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Anonymous

unregistriert

9

09.11.2005, 16:35

Nox
Perversling :D

http://www.germangamedev.de/index.php?site=faq&id=7 << Qualität

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

10

09.11.2005, 17:00

C-/C++-Quelltext

1
int a = atoi(string);

ist für mich leichter, auch wenn es nicht so sicher sein mag
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige