如何在C ++中进行简单验证?
我的意思是当用户在需要字符串时输入整数时,如何让程序抛出错误,并要求用户重新输入直到输入字符串。
有一种简单的方法吗?
由于
答案 0 :(得分:2)
标准C ++功能集中没有任何内容可以“阻止”用户在被要求输入字符串时输入随机数字。您必须编写一些代码来确定输入是否有效 - 例如检查字符串的每个字符以查看它是否为数字。根据确切的标准,“无数字”或“不得仅为数字”或其他任何内容,您必须提供代码进行检查。
有用的功能是isdigit
,需要#include <cctype>
。还有其他有用的功能,例如isalpha
,isspace
等。
当然,要提供错误消息,您需要使用一些合适的打印功能,并重复使用一些do-while
或while
或类似的构造。
答案 1 :(得分:0)
尝试使用std::strtol
将用户输入的字符串转换为整数。如果操作失败,则表示用户输入的内容不是整数的字符串表示形式(继续执行程序)。如果操作成功,则表示用户输入的是整数的字符串表示形式。在这种情况下,请询问用户其他输入。请注意,strol
会将12345qwerty
之类的字符串成功转换为整数。
如果要检查输入的字符串是否只包含数字,则应迭代所有字符串字符,并使用std::isdigit
检查数字是否为数字。