26. September 201114 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 201114 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 201114 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>
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.