Поместить числа из файла в переменную

Всем привет у меня есть файл,в нем такие вот строки $-чтобы вставить \n при распечатке Мне нужно взять из каждой строки подчеркнутые значения и поместить их в переменные.Перемножить их и прибавить это значение к уже имеющейся сумме.

введите сюда описание изображения


Ответы (1 шт):

Автор решения: SmellyNS

Первая функция находит все ":" в строке.

Вторая - все числа после них.

#include <cstdlib>
#include <iostream>
#include <vector>
#include <string>
#include <ctype.h>
#include <stdlib.h>

using namespace std;

std::vector<unsigned int> find_colons(std::string string){
    int str_size = string.size();
    for (int i = 0; i < str_size; i++) 
    if (string[i] == ':') r.push_back(i);
    return r;
}

std::vector<int> find_diggits(std::string string, std::vector<unsigned int> colons_index_array){
    std::vector<int> r;
    unsigned int col_size = colons_index_array.size();
    std::string temp;
    for (unsigned int i = 0; i < col_size; i++){
        for (unsigned int j = colons_index_array[i]+1; j < string.size(); j++)
            if (isdigit(string[j])) temp.push_back(string[j]);
            else break;
        r.push_back(atoi(temp.c_str()));
        temp.clear();
    }
    return r;
}

int main(int argc, char *argv[])
{

    std::string string = "dsaf:15433 fadfa d:545f afas:12 f";
    std::vector<int> r = find_diggits(string, find_colons(string));
    int rsize = r.size();
    for (int i = 0; i < rsize; i++) std::cout << r[i] << " "; // 15433 545 12
    system("PAUSE");
    return EXIT_SUCCESS;
}


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

В принципе же в выходном массиве у вас будут часы и минуты в двух разных соседних элементах.

→ Ссылка