我只是想知道是否可以禁用键(如字母和其他字符),以便用户不能将它们输入到整数并导致错误。如果这是不可能的(或推荐),你可以让我知道如何处理错误?是否可以在C++中禁用键?
回答
你想在这里,绝对不是禁用键盘上的某些键。但是,一旦按下键并发送了字符,就可以对其进行比较。
然后,你真的应该测试最终的输入,以确保用户没有找到一种方法来发送一个非整数值:例如,你可以,如果它失败的特定测试删除最后输入。
这只是一个简单的部分,更棘手的是将它与其他的流机器集成在一起。顺便说一下,通过const引用传递单个字符没有意义。 –
你说得对。我不知道它是否需要在控制台或GUI应用程序中。另一个答案可能更容易实施和维护。对于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. 是否可以在RichFaces中禁用AJAX?
- 2. 是否可以禁用Controls:HoverButton?
- 3. 是否可以使用java禁用Windows键
- 4. 是否可以在C#中使用IGetActivationFactory.GetActivationFactory?
- 5. 在C#中ID是否可以使用?
- 6. 是否可以禁用右键点击iframe?
- 7. 用户是否可以禁用html5 sessionStorage?
- 8. 是否可以使用Puppeteer禁用Websocket?
- 9. 是否可以在不禁用JavaScript的情况下禁用AJAX?
- 10. 是否可以在NavigationView中禁用可点击的HeaderLayout?
- 11. 是否可以在SQL Server Management Studio 2008中禁用'shift + space'快捷键?
- 12. 是否可以在C#/ LINQ中扩展查询关键字?
- 13. 是否可以禁用mysql子查询?
- 14. 是否可以禁用所有边界?
- 15. 是否可以禁用负向索引?
- 16. 处理时是否可以禁用ImageButton?
- 17. 是否可以禁用RESTEasy的RoleBasedSecurityFilter.java?
- 18. 是否可以禁用D的GC?
- 19. 是否可以禁用视图损失?
- 20. 是否可以从JavaScript内禁用JavaScript?
- 21. 是否可以在Visual Studio中启用禁用的断点
- 22. 是否可以在iOS应用中禁用音量按钮?
- 23. 是否可以完全禁用默认的C++ new运算符?
- 24. 是否可以在C#中培训sapi?
- 25. 是否可以在C#中实现mixin?
- 26. 是否可以在JSON中的另一个键中分配键?
- 27. 是否可以使用键盘映射
- 28. 是否可以使用NULL外键?
- 29. 是否可以在ASP .NET中禁用ViewState?
- 30. 是否可以通过UITableViewStylePlain在UITableView中禁用浮动标题?
你为什么不处理这些错误?在你目前的情况下,简单的回答可能看起来像“嗨,如果我只是禁用这些键,他们不能给不正确的输入,所以我不会有错误!”但是如果你继续编程,有一段时间你必须允许所有的键,但是不正确的输入仍然会来。 – nhgrif
对不起,如果这不是一个好问题。我对C++很陌生,所以你介意让我知道如何做到这一点? – user2840892
如果你编辑你的问题,当你要求用户输入一个整数时,要问如何处理输入错误,我会发布一个答案。 – nhgrif