Do .. while循环:我该怎么做才能使输入(int)不包含数字'1'或'0'?

时间:2016-10-20 10:48:28

标签: c++

do
{
    cout << "Enter a positive integer: ";
    cin >> n;

}while ( n <= 1 || n == 0);

如何进行编码以便输入'1234'时,它会拒绝,因为那里有一个数字'1'。

1 个答案:

答案 0 :(得分:1)

一种方法是从用户输入std::string,并使用std::string::find查看是否存在0或1。完成后,尝试将字符串转换为整数。

或者,如果您想将所有内容保持为“数字”,则可以始终使用% 10来提取最右边的数字:

if (n % 10 < 2){
    /*not allowed: I'm assuming n is positive here*/
}

其次是

n /= 10

删除该数字,然后重复,直到你留下零。显然,您需要分别从0开始测试n的特殊情况。