是否可以禁用C++中的密钥
Is it possible to disable keys in C++?
我只是想知道是否可以禁用键(例如字母和其他字符),以便用户无法将它们输入到整数中并导致错误。如果不可能(或推荐),您能告诉我如何处理错误吗?
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
,这仍然可以正常工作。 如果要"关闭键",则必须决定是否应允许使用-
(负号)或.
(十进制)等键。
你在这里想要的,绝对不是禁用键盘上的某些键。但是,一旦按下键并发送字符,您就可以比较它。例如,如果最后一个输入未通过特定测试,则可以将其删除:
bool validChar(const char &c) {
return (c >= '0' && c <= '9');
}
然后,您确实应该测试最终输入,以确保用户没有找到发送非整数值的方法。
相关文章:
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 允许从 std::map 的密钥窃取资源?
- TMap::Emplace() 在应用现有密钥时会覆盖吗?
- 在没有密钥的情况下读取密文的剩余噪声预算
- 如何修复无效的API密钥,IP或操作权限错误?
- 所有可能的链接生成器与64位密钥
- 如何在unordered_map中更改密钥?
- 获取当前密钥状态?
- curl_easy_perform() 失败:SSL 对等证书或 SSH 远程密钥不正常
- 将密钥发送到非前台的游戏窗口
- 有哪些方法可以对基于 256 位密钥的矩阵进行加扰?
- 如何在精灵表上的两个不同部分之间来回切换,同时用户仍使用 SFML 持有密钥
- 如何将CNG密钥转换为OpenSSL EVP_PKEY(反之亦然)?
- 运行密钥密码解密知道密钥?
- std::unordered_map 运算符 [] 是否对非现有密钥进行零初始化?
- 封装 std::map 以允许迭代,但没有直接密钥访问?
- 如果我使用同一个密钥推送用户数据两次,会发生什么
- 如何在C++中创建自己的编译密钥
- 重载std::映射不同的密钥类型
- 使用C/C++访问OS X密钥链