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;
}

 

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐