Hi,
ich hab das Problem, das ich beim einlesen des Strings diesen nicht auf Zahlen überprüfen kann. Bzw. die Schleife funktioniert einmal, beim zweiten durchlauf funktioniert sie aber nicht mehr. Egal was ich beim zweitenmal eingebe es kommt immer die Ausgabe:
cout <<"Bei Kommazahlen bitte Punkt als Kommaverwenden!\n\n\n";
cout <<"Bitte geben Sie die maximalen Punkte ein:" << endl;
Wo liegt denn da der fehler, oder geht das ganze auch einfacher?
Die Aufgabe sollte sein, das man nur Zahlen eingeben kann (auch Kommazahlen)
Schonmal Danke im voraus.
float TestInput()
{
char a,b;
float maxPointsOk;
string temp;
bool exitInput = false;
for(;![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
{
temp.erase(); //string "leeren"
b = ''; // char werte setzten!
a = ''; // char werte setzten!
cout <<"Bei Kommazahlen bitte Punkt als Kommaverwenden!\n\n\n";
cout <<"Bitte geben Sie die maximalen Punkte ein:" << endl;
b=cin.get();
while(a!='\n')
{
a=cin.get();
temp+=a;
if((a=='0')||(a=='1')||(a=='2')||(a=='3')||(a=='4')||(a=='5')||(a=='6')||(a=='7')||(a=='8')||(a=='9')
{
exitInput = true;
break;
}
else
{
system("cls");
cout << "Ihre Eingabe war leider Falsch!\n";
cout << "\nBitte wiederholen Sie Ihre eingabe!\n\n\n";
}
break;
}
}
temp = b+temp;
if(exitInput == true)
{
break;
}
}
stringstream Str;
Str << temp;
Str >> maxPointsOk;
return maxPointsOk;
}
ich hab das Problem, das ich beim einlesen des Strings diesen nicht auf Zahlen überprüfen kann. Bzw. die Schleife funktioniert einmal, beim zweiten durchlauf funktioniert sie aber nicht mehr. Egal was ich beim zweitenmal eingebe es kommt immer die Ausgabe:
cout <<"Bei Kommazahlen bitte Punkt als Kommaverwenden!\n\n\n";
cout <<"Bitte geben Sie die maximalen Punkte ein:" << endl;
Wo liegt denn da der fehler, oder geht das ganze auch einfacher?
Die Aufgabe sollte sein, das man nur Zahlen eingeben kann (auch Kommazahlen)
Schonmal Danke im voraus.
float TestInput()
{
char a,b;
float maxPointsOk;
string temp;
bool exitInput = false;
for(;
![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
{
temp.erase(); //string "leeren"
b = ''; // char werte setzten!
a = ''; // char werte setzten!
cout <<"Bei Kommazahlen bitte Punkt als Kommaverwenden!\n\n\n";
cout <<"Bitte geben Sie die maximalen Punkte ein:" << endl;
b=cin.get();
while(a!='\n')
{
a=cin.get();
temp+=a;
if((a=='0')||(a=='1')||(a=='2')||(a=='3')||(a=='4')||(a=='5')||(a=='6')||(a=='7')||(a=='8')||(a=='9')
{
exitInput = true;
break;
}
else
{
system("cls");
cout << "Ihre Eingabe war leider Falsch!\n";
cout << "\nBitte wiederholen Sie Ihre eingabe!\n\n\n";
}
break;
}
}
temp = b+temp;
if(exitInput == true)
{
break;
}
}
stringstream Str;
Str << temp;
Str >> maxPointsOk;
return maxPointsOk;
}