Лучший способ игнорировать ввод символов в потоке - PullRequest
1 голос
/ 20 июня 2019

С учетом ввода: 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;

Но, очевидно, это незаконно.Я думал о:

  1. Фиктивное значение для извлечения разделителя в
  2. Итератор регулярных выражений

Я не знаю, есть ли ещеэлегантное решение, я бы, конечно, хотел что-то, что я мог бы сделать встроенным, подобно решению sscanf.

Live Example

...