Fehlerabfragung eingabe von buchstaben und Kommazahlen
-
Hallo,
Hab ein c++ Programm geschrieben bei dem ein Unterprogramm void Zahlen_einlesen besteht. Mein Problem ist das mein Programm nur die Eingabe negativer Zahlen abfängt. Es wäre nicht schlecht wenn ich auch noch Buchstaben und Kommazahlen abfangen könnte.
Habs probiert aber nicht hinbekommen.
Hab hier mein Programmteil vom Zahlen_einlesen angehängt.
Wäre nicht schlecht wenn mir jemand helfen könnte.mfg
Bjoern
void Zahlen_einlesen()
double j;
{
char ch;do
{
cout<< " Ihre Eingabe Bitte:\n\n";cin>>j;
if (j < 0)
{
cout<<" Falsche Eingabe!!! Bitte erneut eingeben!!!\n";
continue;
}
cout << "\n Ist Ihre Eingabe korrekt? (j/n)(Bei n(nein) Erneute Eingabe
moeglich.\n\n";
cout<<" Eingabe (j/n):";
cin >> ch;}
while (ch != 'j');
}
-
Ich würds mit std::string, std::stringstream (aus <sstream>) und isdigit() (aus cctype) machen.
-
Siehe FAQ (Konsolen FAQ). SideWinder hat dort eine sehr gute Funktion implementiert.
@Michael E.
Auch eine gute Idee, aber wenn in der Konsolen FAQ schon eine Funktion implementiert ist würde ich auch diese verwenden.MfG CSS
-
Bjoern123 schrieb:
void Zahlen_einlesen()
double j;
{
char ch;do
{
cout<< " Ihre Eingabe Bitte:\n\n";cin>>j;
if (j < 0)
{
cout<<" Falsche Eingabe!!! Bitte erneut eingeben!!!\n";
continue;
}
cout << "\n Ist Ihre Eingabe korrekt? (j/n)(Bei n(nein) Erneute Eingabe
moeglich.\n\n";
cout<<" Eingabe (j/n):";
cin >> ch;}
while (ch != 'j');
}Es gibt da eine kleine Taste die heißt c/c++ beim eingeben einer Antowrt/eines Threads, Quellcode markieren, draufklicken und:
void Zahlen_einlesen() double j; { char ch; do { cout<< " Ihre Eingabe Bitte:\n\n"; cin>>j; if (j < 0) { cout<<" Falsche Eingabe!!! Bitte erneut eingeben!!!\n"; continue; } cout << "\n Ist Ihre Eingabe korrekt? (j/n)(Bei n(nein) Erneute Eingabe moeglich.\n\n"; cout<<" Eingabe (j/n):"; cin >> ch; } while (ch != 'j'); }
Ist viel besser und übersicvhtlicher....
Gruß eXitus :xmas1: :xmas2: