while(cin >> rplace_x >> rplace_y )
cin是istream类的一个对象。抽取运算符(>>)使得cin>>rplace_x也成为一个istream对象。类运算符是使用函数实现的。使用cin>>rplace_x时, 程序将调用一个函数,该函数也将返回一个istream的值。将抽取运算符用于cin>>rplace_x对象(cin>>rplace_x>>rplace_y),也将获得一个istream对象。因此,整个while循环的测试表达式的最终结果为cin,而cin被用于测试表达式中时,将根据输入的是否成功,被转换成bool值得true或fulse。
例如,cin期望用户输入2个数字,当用户输入了q,cin将认为q不是数字,从而将q留在输入队列中,并返回一个被转换为fulse的值。导致循环结束。
对比
for(int i=0;i<limit;i++) { cin>>temp; if(temp<0){ break; } a[i]=temp; }