I have a homework assignment to create a program to calculate the full date of Easter Sunday between the years 1900 and 2600. The following is the error I receive:

error C2784: 'std::basic_ostream<_Elem,_Traits> &std::operator <<(std::basic_ostream<_Elem,_Traits> &,const std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_ostream<_Elem,_Traits> &' from 'std::basic_istream<_Elem,_Traits>'

My professor checked my code and said that it was fine; however, even with cleaning the solution, I can't run the program. So, what exactly does the above error mean, and how would I go about fixing the code?

#include <iostream>
#include <iomanip>
using namespace std;
int main () {

	int a, b, c, d, e;
	int day, year;

	cout << "Easter Sunday Calculator" << endl;
	cout << "Enter the year: ";
	cin >> year << endl;
	cout << "Easter Sunday is "; 

	//this calculation formula works only for the certain range of 
	//year values.
	if (year <1900 || year >2600) { 
		cout << "This calculator cannot serve you\n";
	return -1; //terminate the program. 
	}
	
	a = year % 19;
	b = year % 4;
	c = year % 7;
	d = (19 * a + 24) % 30;
	e = (2 * b + 4 * c + 6 * d + 5) % 7;
	day = 22 + d + e;

	if (day > 31) {
		cout << "April ";
		day = d + e - 9;
		if (year == 1954 || year == 1981 || year == 2049 || year == 2076) {
			day = d + e - 16; 
		}
	}
	else {
		cout << "March ";
	}
	
	cout << day << ", " << year << endl;

	return 0;
}

I spent so much time trying to figure it out, and to think it was something that easy. That little mistake went right past my prof. Thank you so much.

This question has already been answered. Start a new discussion instead.