So I\'m trying to read this file. Everything looks like it should work, but during runtime the program times out and stops working, and I have to close it. What is going on? I s
What do u mean that it is not working? The way this is written, this will try to read one line more,than you expect.
This is because, when the last row is read, getline is not hit eof
yet, but when try to read the line, after the last, then will hit eof
. So, this may be your problem.
eof
returns true after you tried to read something and the operation failed. So put it after getline
.
EDIT: try this code:
vector<Pet*> petArray;
ifstream textFile2("pets.txt");
string temp;
int tmpNum = 0;
while (getline(textFile2, temp))
{
if (temp == "Dogs") tmpNum = 0;
else if (temp == "Cats") tmpNum = 1;
else if (temp == "Iguanas") tmpNum = 2;
else if (temp == "Pigs") tmpNum = 3;
else
{
if (tmpNum == 0)
{
petArray.push_back(new Dog(temp));
cout << "Dog " << temp << " added" << endl;
}
if (tmpNum == 1)
{
petArray.push_back(new Cat(temp));
cout << "Cat " << temp << " added" << endl;
}
if (tmpNum == 2)
{
petArray.push_back(new Iguana(temp));
cout << "Iguana " << temp << " added" << endl;
}
if (tmpNum == 3)
{
petArray.push_back(new Pig(temp));
cout << "Pig " << temp << " added" << endl;
}
}
}