Мне просто интересно, можно ли отключить ключи (например, алфавит и другие символы), чтобы пользователь не мог ввести их в целые числа и вызвать ошибки. Если это невозможно (или рекомендуется), не могли бы вы сообщить мне, как обрабатывать ошибки?Можно ли отключить ключи в C++?
ответ
Что вы хотите здесь, определенно НЕ отключить некоторые клавиши на клавиатуре. Однако после нажатия клавиши и отправки символа вы можете сравнить ее. Например, вы можете удалить последний вход, если он не конкретный тест:
Тогда вы действительно должны проверить окончательный ввод, чтобы гарантировать, что пользователь не нашел способ отправки Нецелочисленного значения ,
Это просто легкая часть, что сложнее, интегрируя ее с остальными машинами потоков. Кстати, нет смысла пропускать один символ по ссылке const. –
Вы правы. Я не знал, требуется ли это в консоли или графическом приложении. Другой ответ, вероятно, проще реализовать и поддерживать. Для ссылки const это только безопасный способ гарантировать, что ничто и никто не может изменить аргумент внутри функции. –
С примитивными типами обычно вы просто передаете аргументы по значению. –
int x;
std::cout << "Enter a number: ";
std::cin >> x;
while(std::cin.fail())
{
std::cin.clear();
std::cin.ignore(numeric_limits<streamsize>::max(),'\n');
std::cout << "Bad entry. Enter a NUMBER: ";
std::cin >> x;
}
std::cout << "x = " << x << "\n";
std::system("pause");
return 0;
Это будет оставаться в петле while
до тех пор, пока пользователь не введет правильный целое число. Вы можете поместить больше проверок, чтобы убедиться, что номер, который вводит пользователь, с определенным диапазоном, или добавить переменные, чтобы разрешить определенное количество догадок и т. Д.
И, конечно, вы захотите редактировать подсказки и прочее адаптируйте это к тому, для чего вы его используете, но вы можете создать новый проект, загрузив этот файл и проверив его, чтобы увидеть, как он работает. Поиграйте с этим немного, и теперь вы знаете, как выполнять некоторые основные манипуляции с пользователем.
Кроме того, вы можете изменить x
в этом шаблоне на double
, и это все еще работает отлично. Если вам нужно «выключить ключи», то вам нужно решить, должен ли разрешаться ключ, например -
(отрицательный знак) или .
(десятичный).
Спасибо, но как вы могли бы также ограничить десятичные числа? – user2840892
Изменение 'x' на' float' или 'double' должно позволить этому работать. – nhgrif
- 1. Можно ли отключить системные ключи через jQuery?
- 2. Можно ли отключить stderr в C++?
- 3. Есть ли способ отключить определенные ключи в C#?
- 4. Можно ли отключить автозаполнение?
- 5. YAML: Можно ли помещать пробелы в ключи?
- 6. Включить Отключить ключи с помощью программы C
- 7. Можно ли отключить отрицательную индексацию?
- 8. Можно ли отключить setlocale() в процессе?
- 9. можно ли отключить автоматическое продвижение типа в Objective-C
- 10. Можно ли игнорировать атрибуты в C#? Или отключить их обработку?
- 11. Можно ли отключить все границы?
- 12. Можно ли отключить просмотр-потерю?
- 13. Magento - Можно ли отключить Mage_Downloadable?
- 14. Можно ли отключить подсказку мыши?
- 15. Можно ли отключить commitEditingStyle программно?
- 16. Можно ли безопасно отключить таймер
- 17. Можно ли запросить ключи от TinyDB
- 18. Можно ли итерировать все ключи OutputCache?
- 19. Можно ли программно отключить iPhone?
- 20. Можно ли отключить предупреждения компилятора?
- 21. Можно ли отключить клиентский запрос?
- 22. Можно ли отключить подзапрос mysql?
- 23. Можно ли отключить кеш .ivy?
- 24. Отключить ключи DPAD в android
- 25. Можно ли использовать библиотеки из класса «Ключи»?
- 26. Можно ли отключить View Controllers, управляемый UINavigationController?
- 27. Можно ли отключить загрузку в zkoss?
- 28. Можно ли отключить бесконечную прокрутку в UIDatePicker?
- 29. Можно ли отключить горизонтальную прокрутку в списке?
- 30. Можно ли отключить сканирование taglib в Tomcat?
Почему бы вам просто не обработать ошибки? В вашей текущей ситуации простой ответ может показаться «эй, если я просто отключу эти ключи, они НЕ МОГУТ давать неправильный ввод, поэтому у меня не будет ошибки!» но если вы продолжаете программирование, будет время, когда вам придется разрешить все ключи, но не может быть введен неправильный вход. – nhgrif
Извините, если это не большой вопрос. Я немного новичок в C++, так что не могли бы вы дать мне знать, как это сделать? – user2840892
Если вы отредактируете свой вопрос, чтобы действительно спросить, как обрабатывать ошибки ввода, когда вы просите пользователя ввести целое число, я отправлю ответ. – nhgrif