Как добиться максимальной ширины поля sscanf через istringstream на С++?

Я знаю, что можно использовать istringstream вместо sscanf, например:

std::istringstream argtime{"01:00"};
char colon;
int hour;
int minute;

argtime >> std::noskipws;
argtime >> hour >> colon >> minute;
if(argtime && colon == ':') // hh:mm is parsed successfully.
{
    // ...
}

Приведенные выше строки частично похожи на следующий код sscanf:

sscanf("01:00", "%d:%d", &hour, &minute);

Но есть ли решение для достижения функции максимальной ширины поля sscanf через istringstream в C++ (C++11/C++14/C++1z)?

sscanf("01:00", "%2d:%2d", &hour, &minute);

Изменить: я также пробовал манипулятор ввода-вывода setw, но он не работает для целых чисел.


person Sadeq    schedule 10.11.2015    source источник