In C while editing the following code How can you check to s
In C++, while editing the following code. How can you check to see if the file is open or not. If not ask for the file name again untill they enter a valid txt file name. It needs to loop until a valid name is inputed.
===================================================
void Pokedex::readdata()
{
char filename[20];
int i = 0;
cout << \"What is the name of the file?(pokemon.txt): \";
cin.getline(filename, 20);
ifstream inputfile;
inputfile.open(filename);
inputfile.get(creatures[i].name,SIZE,\',\');
while(!inputfile.eof() && i < SIZE)
{
inputfile.ignore(SIZE, \',\');
inputfile.get(creatures[i].type,SIZE,\',\');
inputfile.ignore(SIZE,\',\');
inputfile >> creatures[i].hitpoints;
inputfile.ignore(SIZE, \',\');
inputfile >> creatures[i].attack;
inputfile.ignore(SIZE, \',\');
inputfile >>creatures[i].defense;
inputfile.ignore(SIZE, \',\');
inputfile >>creatures[i].ability;
inputfile.ignore(SIZE, \'\ \');
++i;
++count;
inputfile.get(creatures[i].name,SIZE,\',\');
}
cout << \"You have loaded \" << count <<\" pokemon.\";
inputfile.close();
}
Solution
void Pokedex::readdata()
 {
 char filename[20];
 int i = 0;
 cout << \"What is the name of the file?(pokemon.txt): \";
 cin>>filename;
 ifstream inputfile;
 inputfile.open(filename);
 while(inputfile.fail())//checks whether file is opened or availble or not
    {
        inputfile.clear();
        cout<<\"file not found,please enter again:\";
        cin>>filename;
        inputfile.open(filename);
    }  
 inputfile.get(creatures[i].name,SIZE,\',\');
 while(!inputfile.eof() && i < SIZE)
 {
 inputfile.ignore(SIZE, \',\');
 inputfile.get(creatures[i].type,SIZE,\',\');
 inputfile.ignore(SIZE,\',\');
 inputfile >> creatures[i].hitpoints;
 inputfile.ignore(SIZE, \',\');
 inputfile >> creatures[i].attack;
 inputfile.ignore(SIZE, \',\');
 inputfile >>creatures[i].defense;
 inputfile.ignore(SIZE, \',\');
 inputfile >>creatures[i].ability;
 inputfile.ignore(SIZE, \'\ \');
 ++i;
 ++count;
 inputfile.get(creatures[i].name,SIZE,\',\');
 }
 cout << \"You have loaded \" << count <<\" pokemon.\";
 inputfile.close();
 }


