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

标签 c++ stl

我写了这样一段代码:

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/

相关文章:

c++ - Opencv轮廓一维离散傅里叶变换

c++ - EXEC BAD ACCESS 遍历 vector

c++ - 改进 OpenCV 中的 Grabcut

C++ 在早期阶段中断一个函数

c++ - std::vector 在返回之前被自动清除

c++ - 我可以使用 Webassembly 从磁盘读取文件吗?

c++ - 如何使用 STL 字符串和流读取/存储 unicode

c++ - 更漂亮的 "pointer to last element"语法,std::vector?

c++ - 如何在 map 中找到最小值?

c++ - 使用 boost::algorithms::join 提取和连接字符串