当输入无效时,函数陷入无限循环

时间:2018-05-19 15:57:10

标签: c++ cin

我想用来自用户输入的整数填充大小为6的数组。它检查一个无效的输入,也是为了数字介于1和100之间。除非有一个非整数的无效输入,否则它会被捕获在“无效”的无限循环中。输入..“。我尝试用“cin.clear();”来解决这个问题。但它似乎没有帮助。我在这里错过了什么?

for (int i = 1; i <= 6; i++) {
        cout << "Please enter number " << i ;   
        while (true) {
            cin >> numbers[i];

            if (!cin.fail() && 101 > numbers[i] && 0 < numbers[i])
                break;

            cin.clear();
            cout << "Not a valid input --  please repeat: ";
        }   
    }

1 个答案:

答案 0 :(得分:1)

您需要使用http清除Handler handler=new Handler(); handler.postDelayed(new Runnable(){ @Override public void run(){ Bitmap b=BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher); b=Bitmap.createScaledBitmap(b,100,100,true); ib.setScaleType(ImageView.ScaleType.FIT_XY); ib.setImageBitmap(b); } },1000); 缓冲区。

像这样的代码:

do {
       itemArray = try context.fetch(request)
    } catch { print("Error fetching data from request\(error)")
    }
        tableView.reloadData()

结果:

cin.sync()