Im пытается заставить программу принимать только х как целое число, а затем запрашивать другое целое число, y. Однако, когда я ввожу плавающую точку в x, она принимает десятичную часть ввода и делает это значение y. Я не уверен в своей ошибке здесь.Пользователь C++ вводит плавающую точку вместо целого
#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;
}
Что вы подразумеваете под "Y" значением? Если вы введете «123.456» и прочитаете его как целое число, 123 будут считаться целыми числами. – user3344003
Возможно, вы можете проверить, вводит ли пользователь ''.'' после первого целого числа и возвратить ошибку в этом случае? – KABoissonneault
yes x будет 123, но после этого программа сразу же распечатывает X = 123 Y = 0. –