Итак, я пытаюсь создать функцию, которая проверяет файл, но я не могу понять, почему все мои переменные пусты после того, как я getline(p_is, team);
Файл содержит в строке 1 название хоккея, после этого список имени и фамилии, например:
TeamName
FirstName1
LastName1
FirstName2
LastName2
FirstName3
LastName3
Вот что я делаю :
В моем основном:
ifstream myfile ("example.txt");
bool test = util::validateFile(myfile);
и это моя функция (базовая версия):
bool validateFile(std::istream& p_is)
{
string team = "";
string firstname = "";
string lastname = "";
getline(p_is, team);
while (!p_is.eof()){
getline(p_is, firstname);
if (firstname.empty())
{return false;}
getline(p_is, lastname);
if (lastname.empty())
{return false;}
}
if (team.empty())
{return false;}
else
{return true;}
Когда я отлаживаю, он возвращает false, потому что команда пуста ... В моем основном я могу распечатать для консоли поток, и все в порядке, и я также попытался повторить свой .txt, если он был поврежден
любая идея ?
РЕДАКТИРОВАТЬ: я добавляю p_is.peek (); и теперь он переходит в цикл while, но все еще пуст, моя строка getline в порядке?