Установить начальные и конечные пределы для чтения из файла - PullRequest
0 голосов
/ 05 мая 2018

Мне нужно прочитать данные из текстового файла. Данные, которые мне нужны, начинаются в некоторой позиции в файле и заканчиваются в другой позиции (не в конце). Я знаю, как изменить стартовую позицию (fin.seekg (startPos);), но как установить мою финишную позицию? У меня есть предельные числа, скажем, начать читать с позиции 100 от начала и до конца с 30 от конца.

1 Ответ

0 голосов
/ 05 мая 2018

Вы можете использовать fin.tellg следующим образом:

fin.seekg(0, fin.end);
length = fin.tellg();

для подсчета общего количества «позиций» в файле. Затем перейдите в нужную стартовую позицию и получите ввод до количества позиций минус 30. Полный пример:

int startPos = 100, length;
string input;
ifstream fin("file.txt");

fin.seekg(0, fin.end);
length = fin.tellg();
fin.seekg(startPos);

for (int i = startPos; i <= length - 30; i++) {
    getline(fin, input, '\n')
    //do something with 'input'
}

fin.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...