Лишнее число в массиве

94
13 сентября 2021, 04:20

Имею текстовый файл с неким содержимым.

В строке выделил отдельный кусок

RUBIN1|X 100.000 m |Y 100.000 m |Z 100.000 m |

Из нее мне нужно вытянуть 3 числа (X,Y,Z). Они могут быть любыми. Для этого написал такой код

auto getCoords(string text,int pos) {
string str;
char i = text[pos];
while (i != '\n'){
    str.push_back(i);
    i = text[++pos];
}
regex words_regex("[+-]?\\d+\\.?\\d*");
auto words_begin = sregex_iterator(str.begin(), str.end(), words_regex);
auto words_end = sregex_iterator();
size_t size = distance(words_begin, words_end);
double* arr = new double[size];
double* it2 = arr;
for (sregex_iterator it = words_begin; it != words_end; ++it) {
    *it2 = stod(it->str());
    ++it2;
}
return arr;
delete[] arr;

где text- строка с текстом из файла, pos - позиция | после слова RUBIN1

Для вывода содержимого на экран использую:

for (auto i = 0; i < sizeof(arr); ++i)
            cout << arr[i] << " ";

Однако в консоли получаю:

100 100 100 1.10195е-309

Не могу понять, откуда берётся четвёртое число

Answer 1

sizeof(arr) в вашем случае - вообще-то просто размер указателя на double...

У вас столько разных классов C++ - и regex, и итераторы... что вам стоит сделать

vector<double> arr;
...
for (sregex_iterator it = words_begin; it != words_end; ++it) {
    arr.push_back(stod(it->str()));
}
...

for (auto i = 0; i < arr.size(); ++i)
    cout << arr[i] << " ";
READ ALSO
Задача диофантово уравнение c++

Задача диофантово уравнение c++

Даны натуральные числа a, b, cЕсли уравнение ax+by=c имеет решения в целых числах, то выберите то решение, в котором число x имеет наименьшее неотрицательное...

75
ошибки JS в консоли

ошибки JS в консоли

Что означает, когда ошибки в консоли указывают на саму библиотеку jQuery?

221
Где лучше хранить свои функции для Django?

Где лучше хранить свои функции для Django?

Есть сайт, работающий на Django 22

234
Текущие данные из БД в DataGridViewComboboxColumn c#

Текущие данные из БД в DataGridViewComboboxColumn c#

Есть таблица d__RenderedServiceBody, в которой имеются внешние ключи к таблицам Продукты и Услуги

101