cout.setf(ios::hex) 没效果问题的解决

原因:

除非知道当前没有设置基标志,否则 ios::setf(_IFlags) 不应和 ios::dec、ios::oct 或 ios::hex 的标志值一起使用。格式化的输入/输出函数和运算符假定只设置了一个基。

解决办法:

1.

先取消ios::dec

cout.unsetf(ios::dec);
cout.setf(ios::hex);

2.

改用 ios_base。例如,setf( ios_base::oct, ios_base::basefield ) 清除所有基信息并将基设置成八进制。(注意中间用逗号和顺序)

cout.setf(ios_base::hex,ios_base::basefield);

注意:此处用到setf第二种原型fmtflags setf(fmtflags, fmtflags)
第二原型包含两个参数,第一个参数和第一原型里的参数一样,第二个参数指出要清除第一参数中的哪些位,也就是说,在第二原型中,第一个参数指出要设置哪些位,第二个参数指出要清除哪些位。

参考文献:1.https://blog.csdn.net/sssxueren/article/details/233352

 2.https://bbs.csdn.net/topics/120020610

3.https://blog.csdn.net/baishuiniyaonulia/article/details/79144033?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162199512916780366541257%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162199512916780366541257&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-79144033.pc_search_result_cache&utm_term=setf&spm=1018.2226.3001.4187

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值