Veröffentlicht 26. September 201113 j Hallo zusammen, ich fange gerade erst an zu programmieren (C/C++) und habe dann ein bisschen herumprobiert den Flächeninhalt eines Kreises zu errechnen. Es funktioniert ABER wenn ich keine Zahl eingebe bei dem Radius würde ich gerne eine Schleife? einbauen damit die Eingabe wiederholt werden muss, nur ich finde nicht heraus wie das geht #include <cstdlib> #include <iostream> #include <cmath> using namespace std; int main(int argc, char *argv[]) { double radius, Flaeche; const float PI=3.14159; cout << "Bitte geben sie den Radius des Kreises ein: "; cin >> radius; system("CLS"); Flaeche= PI * pow(radius,2); cout << "Der Flaecheninhalt betraegt : " << Flaeche << "\n"; system("PAUSE"); return 0; } Kann mir jemand helfen ?
26. September 201113 j Eine einfache Möglichkeit wäre immer Strings einzulesen und dann versuchen die in eine Zahl umzuwandeln, wenn das nicht geht hat der Benutzer etwas falsches eingegeben und du kannst ihn auffordern etwas anderes einzugeben. Eine andere bessere Möglichkeit ist die entsprechende Fehlercodes von cin abzufragen die gesetzt werden wenn die Eingabe nicht zu dem passt was erwartet wurde. Wie das genau geht hab ich aber nicht im Kopf, musst du mal nach suchen.
26. September 201113 j while(!(cin >> radius)) { cout << "Falsche Eingabe, bitte wiederholen: "; // Fehlerstatus des Eingabestreams zurücksetzen cin.clear(); // Unverarbeitete Zeichen aus dem Stream entfernen cin.ignore(numeric_limits<streamsize>::max(), '\n'); } [/code] Du brauchst dafür noch [code]#include <limits>
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.