У меня есть несколько строк, каждая из которых содержит одно слово и несколько целых чисел (одна строки целой линии):C++ как получить только целые числа от сложной строки
Adam 2 5 1 5 3 4
John 1 4 2 5 22 7
Kate 7 3 4 2 1 15
Bill 2222 2 22 11 111
Как вы можете видеть, каждое слово/число разделяется пробелом. Теперь я хочу загрузить эти данные в карту, где слово (имя) будет ключевым, а значение будет вектором чисел в строке. У меня уже есть ключевые значения в изолированном временном контейнере stl, поэтому задача состоит в том, чтобы загружать только целые числа из каждой строки в 2D-вектор, а затем объединить эти два в карту. Вопрос в том, есть ли какая-либо функция C++, которая позволит избежать слов и пробелов и получать только целые числа из строки, или мне нужно искать строки char-by-char, как here?
Я нашел только частичное решение, которое не в состоянии получить номер более чем одна цифра:
vector<int> out;
for (int i = 0; i < line.length(); i++) {
if (isdigit(line.at(i))) {
stringstream const_char;
int intValue;
const_char << line.at(i);
const_char >> intValue;
out.push_back(intValue);
}
}
Является ли имя всегда первым в очереди? – antonpp
Да в этом примере, но было бы полезно найти решение для любого случая – witcher