Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > getline: пустая строка или конец файла?...


Автор: pravila 9.7.2007, 14:25
располагаю таким кодом
Код
getline(file, lineReadFromFile);


как в дальнейшем могу я определить была ли прочитана из файла пустая строка, либо сам файл уже закончился, то есть процесс чтения дошёл до указателя конца файла (EOF)?

хочу код, который мог бы разделить эти 2 возможности по типу if-else

или в случае если это невозможно какой-то иной способ читать по строке из файла, где будет проще определять была прочина пустая строка, либо файл подошёл к концу.


Автор: bsa 9.7.2007, 14:39
Код
while (file) {
...
    getline(file, lineReadFromFile);
...
}
Будет читать пока файл не кончится. Если нужно отслеживать конец файла по другим признакам, то используй if (file)...
P.S.: предполагается, что file - это экземляр потомка std::istream

Автор: Xenon 9.7.2007, 14:49
Если файл вида:
Код

Строка
Строка
Строка
/*Пустая строчка*/

то можно читать как сказал bsa
Если же есть вероятность, что там будет вот так:
Код

Строка
Строка
Строка

То тут уже:
Код

std::ifstream file("...");
while(true)
{
    std::getline(buf, file);
    if( file.fail() ) break;
    //Или что-то делаем
}

Иначе последняя строка не считается.

Автор: pravila 9.7.2007, 14:50
благодареск. smile 

вопрос закрыт!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)