Как преобразовать строку в массив int?

130
29 ноября 2020, 18:10

Нужно преобразовать строку(количество элементов не известно) в массив типа int и вывести i-тый элемент массива

int main()
{
    string x;
    getline(cin, x);
    system("pause");
    return 0;
}
Answer 1

Вот так:

#include <iterator>
#include <sstream>
#include <vector>
std::string x = "1 2 3";
std::istringstream ss(x);
std::vector<int> vec(std::istream_iterator<int>(ss), {});
if (ss.fail())
    // ошибка

Вместо массива здесь вектор, потому что для массива нужно откуда-то знать его размер во время компиляции.

READ ALSO
Неясное поведение std::any_cast

Неясное поведение std::any_cast

Имеется следующий код:

97
Сортировка пузырём

Сортировка пузырём

Необходимо сформировать из части элементов двумерного массива одномерный и отсортировать по убыванию

136
Факториал зависит от порядка условий

Факториал зависит от порядка условий

Почему следующая программа компилируется

206
base operand of ‘-&gt;’ is not a pointer

base operand of ‘->’ is not a pointer

Главное в этой функции всё нормально компилируется

109