C++ Object-Oriented Programming 031: Copycat version istream_iterator ---- (Peking University Mooc)

Article Directory


Original title

Insert picture description here

#include <iostream>
#include <string>

using namespace std;
template <class T>
class CMyistream_iterator
{
    
    
// 在此处补充你的代码
};



int main()  
{
    
     
	int t;
	cin >> t;
	while( t -- ) {
    
    
		 CMyistream_iterator<int> inputInt(cin);
		 int n1,n2,n3;
		 n1 = * inputInt; //读入 n1
		 int tmp = * inputInt;
		 cout << tmp << endl;
		 inputInt ++;   
		 n2 = * inputInt; //读入 n2
		 inputInt ++;
		 n3 = * inputInt; //读入 n3
		 cout << n1 << " " << n2<< " " << n3 << " ";
		 CMyistream_iterator<string> inputStr(cin);
		 string s1,s2;
		 s1 = * inputStr;
		 inputStr ++;
		 s2 = * inputStr;
		 cout << s1 << " " << s2 << endl;
	}
	 return 0;  
}

Code

private:
    T ret;
    bool read;
public:
    CMyistream_iterator(istream & a){
    
    read = false;}
    T operator*()
    {
    
    
        if(!read)
        {
    
    
            cin>>ret;
            read = true;
        }
        return ret;
    }
    void operator++(int n)
    {
    
    
        read = false;
    }

Guess you like

Origin blog.csdn.net/qq_37500516/article/details/115007429