Поиск в текстовом файле строки, где средняя подстрока неизвестна - PullRequest
0 голосов
/ 13 июня 2018

Новичок в C ++, и я пытаюсь найти файл, чтобы найти определенную строку с информацией.Однако информация может отображаться в разных единицах, и поэтому мне интересно, есть ли умный способ сделать это.

 weight_measurements.txt


    //calculations of total vehicle weight above 
    The vehicle's weight is:            1 ton.
    The vehicle's weight is:         1000 kg.
    The vehicle's weight is:     220.4262 lbs.

Цель состоит в том, чтобы найти файл, содержащий около тысячи строк.Найдите строку, которая гласит:

 "The vehicle's weight is:       xxxxx  kg.

И затем сохраните значение «ххххх кг.».

Есть ли способ сделать это за один раз?Или я должен искать строку с «Вес транспортного средства:» сохранить всю строку в массиве, а затем отсортировать строку с правильной единицей?

Номер строки, где информация постоянно меняется в зависимости отна глубине вычислений выше, поэтому использование iistream :: getline () не является хорошим решением.

1 Ответ

0 голосов
/ 20 июня 2018

Я решил проблему с помощью

while(getline(myReadFile, output))
{

    if(output.find(line_looking_for) != std::string::npos
    {
        // clean string if neccesarry
    }    
}

Мне повезло, что искомое измерение всегда было «тонна» (в моем примере кода), поэтому мне не нужно было сохранять всевыходы, которые начинались с строки, которую я искал.А затем сортировать их на основе измерений.

Однако я бы, вероятно, сделал это с output.find(measurement)

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