zoukankan      html  css  js  c++  java
  • C++中输入输出十六进制八进制

     

    本文参考链接:https://www.cnblogs.com/hxsyl/archive/2012/09/18/2691693.html,经重新实验得此文

    1.进制问题

    默认情况下使用cin和cout实现十进制数据的输入输出。如果要输入输出八进制或十六进制等格式,需在cin或cout中指明相应的数据形式,oct为八进制,hex为十六进制,dec为十进制。例子如下:

    int main()
    {
        int i, j, k, l;
        cout << "输入 八进制:i(oct), 十六进制:j(hex), 十六进制:k(hex), 十进制:l(dec) :" << endl;
        cin >> oct >> i; //输入为八进制数
        cin >> hex >> j; //输入为十六进制数
        cin >> k; //输入仍为十六进制数
        cin >> dec >> l; //输入为十进制数
        cout << "i dec:" << dec << i << ";	hex: 0x" << hex << i << ";	oct: 0" << oct << i << endl;
        cout << "j dec:" << dec << j << ";	hex: 0x" << hex << j << ";	oct: 0" << oct << j << endl;
        cout << "k dec:" << dec << k << ";	hex: 0x" << hex << k << ";	oct: 0" << oct << k << endl;
        cout << "l dec:" << dec << l << ";	hex: 0x" << hex << l << ";	oct: 0" << oct << l << endl;
    
        cout << dec << endl; //恢复十进制输出状态
        system("pause");
        return 0;
    }

    【运行结果】:

    输入 八进制:i(oct), 十六进制:j(hex), 十六进制:k(hex), 十进制:l(dec) :
    012 0x16 0x16 50
    i dec:10; hex: 0xa; oct: 012
    j dec:22; hex: 0x16; oct: 026
    k dec:22; hex: 0x16; oct: 026
    l dec:50; hex: 0x32; oct: 062

    几点说明:

    1. 使用不带.h的头文件<iostream>时,必须在cin中指明数制,否则从键盘输入时,不认八进制和十六进制数开头的0和0x标志。指明后可省略0和0x标志。
    2. 进制控制只适用于整型变量,不适用于实型和字符型变量。
    3. 输入数据的格式、个数和类型必须与cin中的变量一一对应,否则不仅使输入数据错误,而且影响后面其他数据的正确输入。
    4. 在cin或cout中指明数制后,该数制将一直有效,直到重新指明使用其他数制。

    2、数据间隔

    常用设置方法:输出空格符或回车换行符。

    指定数据输出宽度:用C++提供的函数setw()指定输出数据项的宽度。setw()括号中通常给出一个正整数值,用于限定紧跟其后的一个数据项的输出宽度。如:setw(8)表示紧跟其后的数据项的输出占8个字符宽度。

    #include<iomanip>
    
    using namespace std;
    
    int main()
    {
        int i = 2, j = 3;
        float x = 2.6, y = 1.8;
        cout << setw(6) << i << setw(10) << j << endl;
        cout << setw(10) << i*j << endl;
        cout << setw(8) << x << setw(8) << y << endl;
    
        system("pause");
        return 0;
    }

    【运行结果】:

    2 3
    6
    2.6 1.8

    setw()只能限定紧随其后的一个数据项,输出后即回到默认输出方式。
    使用setw()必须在程序开头再增加一句: #include<iomanip>

  • 相关阅读:
    kettle在linux下执行任务
    activemq spring 集成与测试
    mysql创建存储过程,定时任务,定时删除log
    dubbo-admin 无法支持JDK1.8
    自定义事件驱动加异步执行
    AOP 实现自定义注解
    mybatis-plus的学习
    阿里巴巴架构师的成长之路
    Redis错误:jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
    freemark基础知识
  • 原文地址:https://www.cnblogs.com/UFO-blogs/p/9045662.html
Copyright © 2011-2022 走看看