С учетом ввода: const char input[] = "lorem\t, ipsum"
и ожидаемых выходов: char first[size(input)]
и second[size(input)]
Я могу сделать это:
sscanf(input, "%s , %s", first, second);
Игнорирование пробела и символа-разделителя с помощью ,
.Я хотел бы сделать то же самое с потоком, но лучшее, что я могу придумать, это:
istringstream foo(input);
foo >> first;
foo.ignore(numeric_limits<streamsize>::max(), ',');
foo >> second;
То, что я действительно ищу, это что-то вроде:
istringstream(input) >> first >> ',' >> second;
Но, очевидно, это незаконно.Я думал о:
- Фиктивное значение для извлечения разделителя в
- Итератор регулярных выражений
Я не знаю, есть ли ещеэлегантное решение, я бы, конечно, хотел что-то, что я мог бы сделать встроенным, подобно решению sscanf
.
Live Example