LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 843|回复: 4

大家试试运行这个,看能不能正确输出

[复制链接]
发表于 2007-2-7 10:08:01 | 显示全部楼层 |阅读模式
#include <iostream>

int main()
{
    int number = 0x3ff;

    std::cout<<"Dec: "<<number<<'\n';         //这里输出1023

    std::cout.setf(std::ios::hex);
    std::cout<<"Hex: "<<number<<'\n';        //看看这里能否输出3ff,我就不能

    std::cout.setf(std::ios::dec);
发表于 2007-2-7 13:39:34 | 显示全部楼层
  1. #include <iostream>
  2. #include <iomanip>
  3. int main()
  4. {
  5.         std::cout << std::setbase(16) << 0x3ff << std::endl;
  6. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-2-7 14:32:24 | 显示全部楼层
[php]#include <iostream>

int main()
{
        int number = 0x3ff;

        std::cout<<std::showbase;
        std::cout<<"Dec: "<<number<<'\n'; //这里输出1023

        std::cout<<"Hex: "<<std::hex<<number<<'\n'; //看看这里能否输出3ff,我就>不能

        std::cout<<std::dec;
}
[/php]
回复 支持 反对

使用道具 举报

发表于 2007-2-7 14:41:19 | 显示全部楼层
[php]#include <iostream>

int main()
{
        int number = 0x3ff;

        std::cout.setf(std::ios::showbase);
        std::cout<<"Dec: "<<number<<'\n'; //这里输出1023

        std::cout.unsetf(std::ios::dec);
        std::cout.setf(std::ios::hex);
        std::cout<<"Hex: "<<number<<'\n'; //看看这里能否输出3ff,我就不能

        std::cout.unsetf(std::ios::hex);
        std::cout.setf(std::ios::dec);
}
[/php]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-8 16:43:41 | 显示全部楼层
对!我就想要 zlbruce的第二个答案!!!
谢谢各位!
我是想知道为什么我那样不能正确输出
那几句是照搬书上的,书有错是正常,但是我还是想明白为什么

看了zlburce的答案,我想问问:
一定要先std::cout.unsetf(std::ios::dec)之后
才能再重新std::cout.setf(std::ios::hex)这样做么?
难道setf(std::ios::dec)后再setf(std::ios::hex)这样会出现混乱?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表