Программа запрашивает у пользователя шестизначное число. Вывести на экран, соблюдал ли он правила. Т.е., ввель ли user шестизначное число.
Чтобы проверить, шестизначное ли число, я делил это число на 1000000, так как в данном случае шестизначное число должно давать 0.
Проверка работает правильно с числами типа: 1234567, 12, 789625244242 и т.п. (программа оповещает, что число введено не шестизначное)
Работает не правильно с астрономическими числами : 2e10, 2e8 ...
(программа выводит, что числа шестизначные).
Поэтому мне кажется, что мой алгоритм не правильный.
Подскажите, пожалуйста, как правильно решить эту задачу. Спасибо.
string s;
cin >> s;
if (s[0] != '0' && std::all_of(s.begin(), s.end(),
[](const char& c) { return isdigit(c); }) && s.size() == 6)
cout << "ok";
так хотели?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости