Итак, я пытаюсь прочитать этот файл. Все выглядит так, как будто оно должно работать, но во время работы программа отключается и перестает работать, и я должен ее закрыть. Что происходит? Я подозреваю, что тест oef() никогда не возвращает true, и он продолжает искать больше в файле. У меня нет перетаскивания пустых строк в текстовый файл. Я пробовал отлаживать это как сумасшедший. Я не могу найти ничего плохого, но он все еще отказывается работать.Проблема C++ eof() - никогда не возвращается true?
Pet** petArray;
ifstream textFile2;
textFile2.open("pets.txt");
int i = 0;
string temp;
int tmpNum = 0;
if (textFile2.is_open())
{
while (!textFile2.eof())
{
getline(textFile2, temp);
petArray = new Pet*[arraySize];
if (temp == "Dogs" || temp == "Cats" || temp == "Iguanas" || temp == "Pigs")
{
if (temp == "Dogs") tmpNum = 0;
if (temp == "Cats") tmpNum = 1;
if (temp == "Iguanas") tmpNum = 2;
if (temp == "Pigs") tmpNum = 3;
temp == "";
}
else
{
if (tmpNum == 0)
{
petArray[i] = new Dog(temp);
cout << "Dog " << temp << " added" << endl;
}
if (tmpNum == 1)
{
petArray[i] = new Cat(temp);
cout << "Cat " << temp << " added" << endl;
}
if (tmpNum == 2)
{
petArray[i] = new Iguana(temp);
cout << "Iguana " << temp << " added" << endl;
}
if (tmpNum == 3)
{
petArray[i] = new Pig(temp);
cout << "Pig " << temp << " added" << endl;
}
arraySize++;
}
i++;
}
}
Вот формат текстового файла:
Dogs
d1
d2
Cats
c1
c2
Iguanas
i1
i2
Pigs
p1
p2
Любые предложения?
Да, я знаю, что это, вероятно, не решит проблему, но информации недостаточно для анализа. Определение темп? Если вы отламываете отладчик, где он останавливается? – ybungalobill
Могу я вместо этого поставить: while (getline (textFile2, temp)? Также: я добавил дополнительное отсутствующее содержимое – NateTheGreatt
Да, вы можете: Btw ваша программа останавливается на моем компьютере. Как вы решили, что он никогда не возвращается из цикла? – ybungalobill