我写了这样一段代码:
int d{ 0 };
cin >> setw(2) >> d;
但似乎setw()
对读取整数没有影响。如果是这样,我们如何使用 istream
实现 scanf()
的 %2d
行为?
最佳答案
setw()
并非设计用于整数类型。
它会做什么?提取整数的最后两位小数?如果将 std::hex
放入流中会发生什么情况?
最好的方法是读取数字然后自己处理。例如,如果要提取最低有效两位数,则随后使用d % 100
;对负数进行额外校正。
关于c++ - setw() 不影响读取整数字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38920767/