#include <iostream>
using namespace std;
int main()
{
string h;int t;
cout<<"Введите число: ";cin>>t;
cout<<"Введите символ '+': ";getline(cin,h);
while((h[0]!='+' and h[0]!='-' and h[0]!='*' and h[0]!='/') or h[1]!='\0')
{
cout<<"Ошибка. Нужно ввести один из символов '+, -, *, /'.Введите: ";getline(cin,h);
}
return 0;
}
Не добил я до конца вопрос про ввод '+'. В данном коде есть одна маленькая проблема. Если до ввода строки h был ввод переменной t, то и переменная t записывается в строку h. Как решить эту проблему? Как очистить объект cin после ввода переменной t?
Пользователь решил продолжить мысль 06 Февраля 2012, 15:12:24:
Вроде как мои проблемы решает строка
cin.ignore(1000,'\n');
Пользователь решил продолжить мысль 06 Февраля 2012, 16:17:03:
#include <iostream>
using namespace std;
int main()
{
int a;
while(true)
{
cout<<"Введите числитель дроби: "; cin>>a;
if (cin.good())
{
cin.ignore(1000,'\n');
break;
}
cin.clear();
cout<<"Неправильный ввод числителя. ";
cin.ignore(1000,'\n');
}
return 0;
}
Как ввода целого числа. Но как преобразовать данный код, чтобы при вводе числа с точкой выдавалась ошибка а не только отбрасывались цифры после точки. И еще какие действия выполняет функция cin.clear() не могу понять.