Поместить числа из файла в переменную
Всем привет у меня есть файл,в нем такие вот строки $-чтобы вставить \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;
}
Имейте в виду, что эти функции нельзя использовать как корректное представление данных из файла, поскольку разделителем часов и минут в вашем файле также является двоеточие.
В принципе же в выходном массиве у вас будут часы и минуты в двух разных соседних элементах.
