In a program that I'm working on, I'm having problems with the 'save' and 'load' functions.
Save:
Code:
int save()
{
string filename;
do
{
cout<<"Save game?\n";
getline( cin, choice);
} while (tolower(choice[0]) != 'y' && tolower(choice[0]) != 'n');
if (tolower(choice[0] == 'y'))
{
cout<<"Save filename?\n";
getline( cin, filename);
filename=filename+".rpg";
std::ofstream output(filename.c_str());
output <<player.startpoint<<' '<<player.name<<' '<<player.hp<<' '<<player.weapondesig<<' '<<player.attack<<' '<<player.maxhp<<' '<<player.gold<<' '<<player.frags<<' '<<player.defense<<' '<<bow<<' '<<handgrenade<<' '<<broom<<' '<<rope<<' '<<grapple<<' '<<stairboots<<' '<<goldplate<<' '<<goldgoblet<<' '<<goldbowl<<' '<<goldflatware<<' '<<rockbuster<<' '<<bluessword<<' '<<smsand<<' '<<lgsand<<' '<<bacon<<' '<<rbeef<<' '<<bbqpork<<' '<<bbqbeef<<' '<<chicken<<' '<<steak<<' '<<apple<<' '<<pear<<' '<<pineapple<<' '<<peach<<' '<<papaya<<' '<<cheese<<' '<<candy<<' '<<player.beaten<<' '<<broomequip<<' '<<rockbusterequip<<' '<<bluesswordequip<<' '<<bowgive<<' '<<player.taken<<' '<<computer<<' '<<motherboard<<' '<<floppydrive<<' '<<harddisk<<' '<<compucase<<' '<<os<<' '<<rps<<' '<<calculate<<std::endl;
output.close();
cout<<"Game Saved.\n";
}
else
{
}
system("pause");
invalid=true;
}
Error is as follows in title of message.
Load: (with only significant part of code)
Code:
int load()
{
string filename;
cout<<"Load Filename?\n";
cin.ignore();
getline( cin, filename);
filename=filename+".rpg";
std::ifstream input(filename.c_str());
input >>player.startpoint>>player.name>>player.hp>>player.weapondesig>>player.attack>>player.maxhp>>player.gold>>player.frags>>>>player.defense>>bow>>handgrenade>>broom>>rope>>grapple>>stairboots>>goldplate>>goldgoblet>>goldbowl>>goldflatware>>rockbuster>>bluessword>>smsand>>lgsand>>bacon>>rbeef>>bbqpork>>bbqbeef>>chicken>>steak>>apple>>pear>>pineapple>>peach>>papaya>>cheese>>candy>>player.beaten>>broomequip>>rockbusterequip>>bluesswordequip>>bowgive>>player.taken>>computer>>motherboard>>floppydrive>>harddisk>>compucase>>os>>rps>>calculate;
input.close();
...
}
Error:
In function 'int load()':
Expected primary-expression before '>>' token
Other programs with similar load-save code have not had this problem. All variables in the code are valid.
This attempted to compile in Dev-C++ on a system running Windows XP SP2.