воскресенье, 5 апреля 2009 г.

Проверка "число-не число" на C++

Мне известно несколько способов проверки - что ввёл юзер, число или какое-нибудь нехорошее слово.
Можно загонять ввод в строку, а потом посимвольно проверять isdigit'ом, можно попытаться преобразовать строку в число и смотреть, что получится. Но для себя я выбрал такой способ: взять и загнать без лишних слов ввод в числовую переменную, а дальше по обстановке:



int t;
if (cin >> t)
cout << "Ok" << endl;
else
cout << "Not ok" << endl;



Просто и элегантно.
Работает так:
Введено число, умещающееся в свой тип: Ok.
Введена конструкция из цифр (хотя бы одна лидирующая) и свякой фигни, напр. 111aaa - в переменную считается число до первой "не цифры", в данном случае 111, остальное останется в буфере.
Введено что-то иное - Not ok.

Комментариев нет: