Überprüfung auf Buchstaben, Sonderzeichen & Nachkommastellen
-
Hallo, bin ein ziemlicher C++ Newbie und wir sollen eine Hausarbeit für dir Schule machen. Ich komme aber jetzt nicht mehr weiter...
Wie kann ich die Eingaben überprüfen, ob zB der Zinssatz keine 2 Kommas oder sogar sonserzeichen bzw Buchstaben hat?
Daselbige für alle anderen Eingaben... Kann mir da jmd helfen????
Bitte!!! hab das Programm komplett reinkopiert...Schonmal vieeeelne Dank an den, der mir hilft!!!
int main() { //Variablendeklaration float q, p; double Kapital; int n; char Antwort; bool Abbruch; //Aufforderung zur Eingabe des Zinsatzes mit Überprüfung //auf Gültigkeit des Eingabewertes do { cout << "\nBitte geben Sie den Zinssatz ein:\n"; cin >> p; while ( while (p <= 0.0 || p > 20.0) { cout << "\nFalsche Eingabe!" << endl; cout << endl; if (p <= 0.0) { cout << "\nEin Zinssatz kleiner 0.1 ist unzulaessig!\n" << endl; cout << endl; cout << "\nBitte geben Sie den Zinssatz ein:\n"; cin >> p; } else { cout << "\nEin Zinssatz groesser 20.0 ist unzulaessig!\n" << endl; cout << endl; cout << "\nBitte geben Sie den Zinssatz ein:\n"; cin >> p; } } //Aufforderung zur Eingabe des Anfangskapitals mit Überprüfung //auf Gültigkeit des Eingabewertes cout << endl; cout << "\nBitte geben Sie das Anfangskapital ein:\n"; cin >> Kapital; while (1) if (Kapital > 0.0 && Kapital < 10000000.0) break; if (Kapital > 0.0) { cout << "\nFalsche Eingabe!" << endl; cout << endl; cout << "\nEin Anfangskapital kleiner 0.1 ist unzulaessig!\n" << endl; cout << endl; cout << "\nBitte geben Sie das Anfangskapital ein:\n"; cin >> Kapital; } else { cout << "\nFalsche Eingabe!" << endl; cout << endl; cout << "\nEin Anfangskapital groesser 10000000.0 ist unzulaessig!\n" << endl; cout << endl; cout << "\nBitte geben Sie das Anfangskapital ein:\n"; cin >> Kapital; } //Aufforderung zur Eingabe der Laufzeit mit Überprüfung //auf Gültigkeit des Eingabewertes cout << endl; cout << "Bitte geben Sie die Anzahl der Jahre ein:\n"; Sprungziel: cin >> n; if (n <= 0) { cout << "Falsche Eingabe!" << endl; cout << endl; cout << "\nDie Berechnung muss fuer mindestens ein Jahr erfolgen!\n" << endl; cout << endl; goto Sprungziel; } //An dieser Stelle ist es am einfachsten 'goto' zu verwenden, //auch wenn man Schleifen vorziehen sollte q = 1 + p/100; cout << endl; cout << "Zinsatz: "<<p <<" Prozent" << endl; cout << "Anfangskapital: "<<Kapital <<" Euro" << endl; cout << "Laufzeit: "<<n <<" Jahre" << endl; cout << "\nJahr Endkapital" << endl; for (int i = 1; i <= n; i++) { Kapital *= q; cout << i << "\t" << Kapital << endl; } //Abfrage ob das Programm beendet werden soll cout << "\nMoechten Sie das Programm beenden (j/n)? "; cin >> Antwort; switch (Antwort) { case 'j': Abbruch = true; break; case 'J': Abbruch = true; break; case 'n': Abbruch = false; break; case 'N': Abbruch = false; break; default: Abbruch = false; break; } } while (!Abbruch); return 0; getch(); }
-
Hab deinen Code eben überflogen. Wenn du den Zinsatz als float einliest,
kannst du gar keine Prüfung machen, ob du eine vernünftige Zahl bekommen hast.
Lies den Zinsatz zuerst als std::string ein, den überprüst du dann. Anschließend
kannst du den string in eine Zahl umwandeln und die ganzen Berechnungen
machen.[ Dieser Beitrag wurde am 07.07.2003 um 12:00 Uhr von Taurin editiert. ]
-
Hmmm, ok!
Aber ich weiss nicht wie ich das mit dem überprüfen machen... hab schon nach Funktionen gesucht, bin aber irgendwie nicht so richtig schlau geworden
Edit:
Hoffe mir kann da jmd noch ein bissel mehr helfen. Bin echt ziemlicher noob... machen erst seit nem halben jahr C++[ Dieser Beitrag wurde am 07.07.2003 um 12:24 Uhr von futzichen editiert. ]