如何在C ++中通过istringstream实现sscanf的最大字段宽度特性?

时间:2015-11-10 20:53:27

标签: c++ scanf istringstream formatted-input

我知道可以使用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);

但有没有解决方案在C ++中通过sscanf实现istringstream的最大字段宽度功能(C ++ 11 / C ++ 14 / C ++ 1Z)?

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

编辑:我也尝试了setw IO操纵器,但它不适用于整数。

0 个答案:

没有答案