cout.setf(ios::hex) 没效果问题的解决
Posted 建大二哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于cout.setf(ios::hex) 没效果问题的解决的主要内容,如果未能解决你的问题,请参考以下文章