4:你真的搞清楚为啥 while(cin >> n) 能成立了吗?
总时间限制:
1000ms
内存限制:
65536kB
// 在此处补充你的代码
描述
读入两个整数,输出两个整数 ,直到碰到-1
#include <iostream> using namespace std; class MyCin {
}; int main() { MyCin m; int n1,n2; while( m >> n1 >> n2) cout << n1 << " " << n2 << endl; return 0; }
输入
多组数据,每组一行,是两个整数
输出
对每组数据,原样输出
当碰到输入中出现-1 时,程序结束
输入中保证会有 -1
样例输入
12 44 344 555 -1 2 3
样例输出
12 44 344 555
说实话这道题目有点难,>>不是一个输入的重载,而只是一个状态的重载,还需要重载bool ()
#include <iostream>
using namespace std;
class MyCin
{
private:
bool status;
public:
MyCin():status(true){}
MyCin & operator >>(int & n)
{
if (!status)
return *this;
cin >> n;
if (n == -1)
status = false;
}
operator bool()
{
return status;
}
};
int main()
{
MyCin m;
int n1, n2;
while (m >> n1 >> n2)
cout << n1 << " " << n2 << endl;
return 0;
}