Ich versuche, das Programm zu erhalten, nur X als Ganzzahl zu akzeptieren, und dann nach einer anderen Ganzzahl y zu fragen. Wenn ich jedoch einen Fließkommawert in x eintrage, nimmt er den Dezimalteil der Eingabe und macht diesen zum y-Wert. Ich bin mir meines Fehlers hier nicht sicher.C++ - Benutzer gibt Gleitkomma statt Integer ein
#include <iostream>
#include <string>
#include <limits>
using namespace std;
int getInt()
{
int x = 0;
while (!(cin >> x))
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Please input a proper 'whole' number: " << endl;
}
return (x);
}
int toobig()
{
cout << "Your number is too large, please enter something smaller: " << endl;
int x = getInt();
return (x);
}
int toosmall()
{
cout << "your number is negative, please enter a positive number: " << endl;
int x = getInt();
return (x);
}
int main()
{
cout << "your number please:-" << endl;
int x = getInt();
if (x>100000)
{
toobig();
}
else if (x<0)
{
toosmall();
}
int y = 0;
cout << "enter y " << endl;
cin >> y;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
system("PAUSE");
return 0;
}
Was meinen Sie mit dem "Y" -Wert? Wenn Sie "123.456" eingeben und es als Ganzzahl lesen, wird die 123 als Integer gelesen. – user3344003
Vielleicht können Sie überprüfen, ob der Benutzer '. 'Nach der ersten Ganzzahl eingibt und in diesem Fall einen Fehler zurückgibt. – KABoissonneault
ja x wäre 123, aber nachdem dies eingegeben wurde, druckt das Programm sofort X = 123 Y = 0. –