0

所以我查看了这个,我看到的大多数解决方案只确保它是一个正在输入的数字,然后如果用户输入一个十进制值,它只会删除小数值,并保留整数。

基本上我想要它

//ask for integer value
//check for valid integer value
//if anything but an integer value throw an error and loop back to start
4

2 回答 2

1

可能有更好的解决方案,但要 100% 确定用户输入了一个整数值:将整个输入保存到 std::string 中。现在遍历每个字符,确保它是一个数字 (0...9)。通过这种方式,您将检测句点、逗号和所有非数字的内容。

于 2013-09-07T17:33:05.003 回答
0

可能是这样的:

    #include<limits>

    float x;
    int num;

    while(true){

    if (!(cin >> x)) {
        cout << "Not a Real Number" << endl;
        // do something
    }
    else {
        num = x;
    }

     std::cin.clear();
     std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  }
于 2013-09-07T17:34:26.677 回答