如何限制用户仅输入数字?

时间:2017-11-22 01:42:42

标签: c++ numbers codeblocks

好的,基本上我必须在我的学校为俱乐部制作基本课程。我试图将它发送到用户输入不是数字的东西时,它有一条错误消息并循环回来再次询问该号码。这不是完全正确的,但我真的很快就把它放在一起作为一个例子。

#include <iostream>
#include <string>
#include <iomanip>
#include <cstdlib>
#include <ctime>

using namespace std;

int main() { 
int a;
int b;

do{
cout << "Welcome to the equalizer. Please enter a number." << endl; 
cin >> a;

cout << endl << "Ok, now I need another number." << endl;
cin >> b; //if a number is not entered, I need an error message and a loop back to the request for the number.
if(a>b){
cout << a << " is greater than " << b << endl;

      }
if(b>a){
cout << b << " is greater than " << a << endl;

      }
if(b=a){
cout << a << " is equal to " << b << endl;

      }
cout << "restart? Enter Y if yes, or enter anything else to close." << endl;
cin >> c;

}while(c=="y" || c=="Y");

return 0;

1 个答案:

答案 0 :(得分:0)

好吧,如果我做对了,你可以使用类似“isdigit('char')”的东西。别忘了包含“ctype.h”。 在您的代码中,它将类似于:

[0][0] -- [1][0] -- [2][0] -- [3][0] -- ..... -- [3][2]

如果数字可能是一个像“1232321”这样的字符串,那么你可能需要遍历该字符串来检查每个字符,如果不是则退出...

if (!isdigit(c))
  continue;

希望,这有帮助。

P.S。当然,示例中的“a”和“b”应为string或char ...