当用户在需要字符串时输入整数时,如何使C ++程序抛出错误?

时间:2013-09-11 11:40:34

标签: c++ validation

如何在C ++中进行简单验证?

我的意思是当用户在需要字符串时输入整数时,如何让程序抛出错误,并要求用户重新输入直到输入字符串。

有一种简单的方法吗?

由于

2 个答案:

答案 0 :(得分:2)

标准C ++功能集中没有任何内容可以“阻止”用户在被要求输入字符串时输入随机数字。您必须编写一些代码来确定输入是否有效 - 例如检查字符串的每个字符以查看它是否为数字。根据确切的标准,“无数字”或“不得仅为数字”或其他任何内容,您必须提供代码进行检查。

有用的功能是isdigit,需要#include <cctype>。还有其他有用的功能,例如isalphaisspace等。

当然,要提供错误消息,您需要使用一些合适的打印功能,并重复使用一些do-whilewhile或类似的构造。

答案 1 :(得分:0)

尝试使用std::strtol将用户输入的字符串转换为整数。如果操作失败,则表示用户输入的内容不是整数的字符串表示形式(继续执行程序)。如果操作成功,则表示用户输入的是整数的字符串表示形式。在这种情况下,请询问用户其他输入。请注意,strol会将12345qwerty之类的字符串成功转换为整数。

如果要检查输入的字符串是否只包含数字,则应迭代所有字符串字符,并使用std::isdigit检查数字是否为数字。