Чтение части текстового файла с переполнением стека

У меня есть вопрос относительно чтения *.txt файл с C ++. Я пытаюсь прочитать только часть данных между каким-то конкретным знаком, как [start] а также [end],

Как я могу это сделать?

Я знаю, как открыть и прочитать весь файл, но я не знаю, как прочитать только его часть с такими требованиями.

2

Решение

использование std::string а также std::getline отфильтровать строки и идти оттуда. Пример:

std::ifstream input("someText.txt");
std::string line;
unsigned int counter = 0;
while (std::getline(input, line))
{
std::cout << "line " << counter << " reads: " << line << std::endl;
counter++;
}

Кроме того, вы можете использовать substr() метод std::string класс для фильтрации подстрок. Вы также можете маркировать слова (вместо строк) с std::getline используя необязательный третий аргумент, который является токенизатором. Пример:

std::ifstream input("someText.txt");
std::string word;
unsigned int counter = 0;
while (std::getline(input, word, ' '))
{
std::cout << "word #" << counter << " is: " << word << std::endl;
counter++;
}
1

Другие решения

Здесь можно прочитать слово за словом, пока вы не получите нужный начальный тег, а затем прочитать и сохранить все слова, пока не будет прочитан конечный тег.

0

Если вы создаете этот файл .txt самостоятельно, создайте его структурированным способом, сохраняя смещение и размер различных блоков в начале. если это так, вы можете прочитать смещение требуемого блока данных с начала и перейти к нему с помощью fseek (или аналогичного). В противном случае вы должны читать слово за словом.

0
По вопросам рекламы [email protected]