do
{
cout << "Enter a positive integer: ";
cin >> n;
}while ( n <= 1 || n == 0);
如何进行编码以便输入'1234'时,它会拒绝,因为那里有一个数字'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
的特殊情况。