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

11

05.02.2008, 15:39

Ich hab zwar noch nicht zuviel Ahnung, aber das Default verwende ich nie alleine als Eingabeabsicherung. Wenn man keine Zahlen eingibt sondern ausversehen ein Buchstabe haste eine Endlosschleife. Um das zu verhindern mach ich immer nach der cin Eingabe folgendes:

C-/C++-Quelltext

1
2
3
4
5
6
7
while (! cin ) // Nutzereingabe wiederholen, wenn sie nicht korrekt war 

      { 
        cin.clear(); 
        cin.ignore(); 
        cout << "\nDeine Fehlermeldung";
        cin >> Auswahl;
      }


Ich weiß jetzt nicht, was die Profis davon halten, ich finds halt praktisch :)
Ist schöner wie eine do, while schleife bei jeder Eingabe.
lg

Nelrim

Frischling

  • »Nelrim« ist der Autor dieses Themas

Beiträge: 33

Beruf: Entwicklungskonstrukteur

  • Private Nachricht senden

12

05.02.2008, 15:50

Zitat von »"raXor"«

Ich hab zwar noch nicht zuviel Ahnung, aber das Default verwende ich nie alleine als Eingabeabsicherung. Wenn man keine Zahlen eingibt sondern ausversehen ein Buchstabe haste eine Endlosschleife. Um das zu verhindern mach ich immer nach der cin Eingabe folgendes:

C-/C++-Quelltext

1
2
3
4
5
6
7
while (! cin ) // Nutzereingabe wiederholen, wenn sie nicht korrekt war 

      { 
        cin.clear(); 
        cin.ignore(); 
        cout << "\nDeine Fehlermeldung";
        cin >> Auswahl;
      }


Ich weiß jetzt nicht, was die Profis davon halten, ich finds halt praktisch :)
Ist schöner wie eine do, while schleife bei jeder Eingabe.
lg


naja ich benutz ungern sachen die ich net verstehe und cin.clear kenn ich noch nicht und cin.ignore hab ich net kapiert :oops:
dadurch das ich ja nicht ne int eingabe sondern ne char eingabe mache kommts nicht zur endlosschleife, ich weiss aber was du meinst.

mal noch was anderes...

ich versuche gerade ein einmaleins spielchen zu basteln und das läuft soweit auch ganz gut, aber ich hätte jetzt gerne noch "zufällige" operatoren... ich hab also ne zufallsfunktion geschrieben, die mir nen char + oder - zurückliefert... für die Aufforderung an den Spiele klappt das ja ganz gut aber den Compiler kann ich so nicht überlisten.

Hier mal der naive versuch:

C-/C++-Quelltext

1
RichtigesErgebnis = 5 Zufallszahl(Bereich) 5;


Das frisst der compiler schonmal nicht *gg* (hätte mich auch gewundert)... wie gesagt, die Funktion Zufallszahl bringt mir als char ein "+" oder ein "-" zurück... kann man das so ähnlich überhaupt machen oder muß ich anfangen mit switch case oder sowas die einzelnen fälle abzutesten?

hoffe jemand versteht meine idee lol

Nelrim
Auch der längste Weg beginnt mit einem ersten Schritt.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

13

05.02.2008, 16:03

Du könntest das Problem mit einem switch Ausdruck lösen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
switch (Zufallszahl(Bereich))
{
  case '+':
    RichtigesErgebnis = 5 + 5;
    break;

  case '-':
    RichtigesErgebnis = 5 - 5;
    break;
}
@D13_Dreinig

Werbeanzeige