我写了这样的代码:

int d{ 0 };
cin >> setw(2) >> d;

但是,看来setw()对读取整数没有影响。如果是这样,我们如何用%2d实现scanf()istream行为?

最佳答案

setw()不适用于整数类型。

会怎么办?提取整数的最后两位十进制数字?如果将std::hex放入流中会发生什么?

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

关于c++ - setw()不会影响读取整数字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38920767/

10-10 11:16