Visual Studio 2005 C++ do/while Schleife wiederholen bei Falsch Eingabe Buchstaben
-
Wir haben mit 2 Leuten deinen Link ausprobiert , da steht leider keine funktionierende Lösung drin.
if( !(std::cin >> tarif) )
{
std::cin.clear();
std::cin.ignore(std::numeric_limitsstd::streamsize::max(), '\n');
}geht nicht.
Da war die Idee von _matze doch besser , den bei ihm lief das Programm nicht dauernd neu an. Es hat lediglich die Auswahl nicht mehr funktioniert.
Aber Trozdem Danke Tachchong!
-
Ok, ist das jetzt schon der nächste registierte Troll heute? Hör mal, Tachyons Lösung funktioniert mit Sicherheit, daran besteht kein Zweifel (falls du es richtig gemacht hast), hab ich auch schon ausprobiert.

-
Hallo Matze und Tachyang!
Ihr seid bestimmt freunde und das ist ja auch ok , nur muss man hier keinen verteidigen weil eine Antwort nicht funktioniert , ich habe mich ja auch schon dafür bedankt, also so ist es ja nicht.
Es soll doch hier um´s wesentliche gehen und da habe ich echt nicht viel von euch bekommen , es bringt mir ja nichts wenn einer sagt schau mal da der link da steht was , dann kann er doch sofort sagen er weiß es nicht. Ist genau so wenn ich den Lehrer frage: wie geht das ? und er sagt schau mal ins Buch da steht alles.
Ich habe schon sämtliche Seite durch gesucht aber nichts gefunden was funktioniert.
Stimmt brauche ich vielleicht noch ne Libiry? habe ja nur folgende:
#include <iostream>
????
-
Probier das mal:
#inlude <boost/troll.hpp> //... boost::troll::detector detector(Thread_Opener); if(detector.is_troll()) { boost::troll::moster_slayer slayer; slayer.kill(Thread_Opener); } else { std::cout << "The detector is broken\n"; }
-
Für Tachyons Lösung (merk dir den Namen mal) brauchst du ja mindestens noch den Header <limits>, soweit ich aus dem Kopf weiß, eventuell noch weitere. Heißt das, du kannst das Programm mit diesem Code nicht mal kompilieren? Sowas musst du uns sagen. Nochmal: "funktioniert nicht" ist keine Fehlerbeschreibung. Außerdem ist es schon seltsam, dass du unsere Ratschläge ignorierst, wo du doch Hilfe willst (denn das fällt dann schwer). Beispielsweise habe ich dich gebeten, deinen aktuellen, kompletten Code zu posten...
Wenn du wissen willst, welche Header für eine Funktion o.ä. benötigt werden, dann sieh hier nach:
Das sollte sowieso deine erste Anlaufstelle sein, wenn du programmieren lernen willst.
-
Tachyon schrieb:
Probier das mal:
#inlude <boost/troll.hpp> //... boost::troll::detector detector(Thread_Opener); if(detector.is_troll()) { boost::troll::moster_slayer slayer; slayer.kill(Thread_Opener); } else { std::cout << "The detector is broken\n"; }

-
_matze schrieb:
http://www.msdn.com
Das sollte sowieso deine erste Anlaufstelle sein, wenn du programmieren lernen willst.Besser ist imo das hier.
Ansonsten hast Du völlig recht, vor allem, was die Fehlerbeschreibung betrifft.
-
Tachyon schrieb:
Probier das mal:
#inlude <boost/troll.hpp> //... boost::troll::detector detector(Thread_Opener); if(detector.is_troll()) { boost::troll::moster_slayer slayer; slayer.kill(Thread_Opener); } else { std::cout << "The detector is broken\n"; }sähr gut! allerdings sollte das ding MT laufen bei der horrenden anzahl an trollen die sich derzeit hier so herum treiben.
-
Dann nochmal neu!
Also nochmal zum mitschreiben , mein Problem ist , das ich folgenden Programabschnitt:#include <iostream>
using namespace std;
int main (void)
{
int tarif; // Tarifauswahldo
{
cout << " Tarif Auswahl:\n----------------------------------------\n " << endl;
cout << " (1) Timeline\n (2) Powerline 10\n (3) Powerline 60\n (4) Powerline 100\n (5) Powerline 200\n----------------------------------------\n" << endl;
cout << "Eingabe:";
cin >> tarif; // Eingabe des Tarif} while (tarif<=0 || tarif>=6);
system ("pause"); //
return 0;Der Andere Teil des Programm ist unwichtig es geht nur darum wenn ich die Zahl 1, 2, 3, 4 oder 5 eingebe soll der gewünschte Tarif ausgewählt werden. Dasklappt ja , es geht mit jetzt nur darum wenn ich irgend welche Buchstaben eingebe z.b : sadfsdffd dann Soll das Programm sagen cout: Eingabe ist falsch bitte neu eingeben. Was es im moment aber nicht macht und es dauernd neustartet und keine eingabe mehr möglich ist. Also bitte nur noch antworten wenn es auch ernst gemeint ist!
-
jetzt mal im Ernst. Das ist jetzt schon dein x-ter Beitrag hier. Ist dir schon aufgefallen, dass alle anderen brav die code-tags verwenden??? Das sieht nich tnur netter aus, sondern macht dein Posting auch lesbar... Benutze doch bitte "edit" und schreib deinen Code zwischen [ c p p ] und [ / c p p ] (Leerzeichen läßt du natürlich weg). Alternativ kannst du aber auch gerne den C/C++ Knopf verwenden
-
Zum letzten Mal: dein Problem ist, das du den Eingabepuffer leeren musst. Wir haben dir 2 Möglichkeiten genannt, die (korrekt umgesetzt) beide funktionieren, egal was du behauptest. Und arbeite mal an deiner Sprache: mit "dauernd neustarten" meinst du z.B., dass ein erneuter Schleifendurchlauf stattfindet. Du bist dann einfach besser zu verstehen...
Ich weiß gar nicht, warum ich dir noch antworte... und das tue ich nun auch nicht mehr. Falls du es tatsächlich doch ernst meinst, dann tut es mir leid, aber ich habe für sowas heute keine Nerven mehr...
