setw() 不影响读取整数字段

E. *_*ili 5 c++ stl

我写了这样的代码:

int d{ 0 };
cin >> setw(2) >> d;
Run Code Online (Sandbox Code Playgroud)

但它似乎setw()对读取整数没有影响。如果是这样,我们如何可以实施的行为%2dscanf()istream

Bat*_*eba 1

setw()没有设计与整数类型一起使用。

它会做什么?提取整数的最后两位小数?如果你放了会发生什么std::hex如果你放入流中

最好的方法是阅读该数字,然后自己处理。例如,如果要提取最低有效两位数,请使用d % 100随后;对负数进行额外修正。