У меня есть программа, которую я пытаюсь написать, которая постоянно контролирует файл журнала и выводит определенные элементы в новый файл.Очистка бита eof не работает с циклом while
Я использую по существу.
for (int i = 1; i < y; i ++)
getline(read, line); // skips to the last known end
while (getline(read, line))
{
cout << line;
}
read.clear();
Я также отслеживаю линию, на которой я нахожусь, только используя оператор инкремента по переменной. В конце файла я очищаю бит eof и ища последнюю строку, на которой я был. От использования отладчика кажется, что он работает. Я извлекаю следующую строку в файле, когда ее записывают, но когда я перезвоню на мой while (getline(read,line));
, он пропускает цикл while, почему?
- программа считывает последнюю строку в файле.
- Спит в течение 5 минут.
- У входного файла были добавлены новые строки от третьего лица.
- После сна он просыпается и возвращается к циклу while.
- Он успешно извлекает новые строки из ввода. Но не в введите время цикла снова
'seekg (y)' ищет смещение байта 'y', а не номер строки' y'. Вам нужно использовать 'tellg()' и помнить смещение байта нужной строки, чтобы вы могли вернуться к нему позже. –
@IgorTandetnik О, я ошибся. Я использую цикл for, чтобы пропустить getline до конца. Я обновил сообщение. Я ничего не искал. – Mishap
Есть ли перемотка (искать начало) где-то? Без этого кода нет никакого смысла. –