本文参考链接: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 << ";\thex: 0x" << hex << i << ";\toct: 0" << oct << i << endl;
cout << "j dec:" << dec << j << ";\thex: 0x" << hex << j << ";\toct: 0" << oct << j << endl;
cout << "k dec:" << dec << k << ";\thex: 0x" << hex << k << ";\toct: 0" << oct << k << endl;
cout << "l dec:" << dec << l << ";\thex: 0x" << hex << l << ";\toct: 0" << oct << l << endl; cout << dec << endl; //恢复十进制输出状态
system("pause");
return ;
}

【运行结果】:

输入 八进制: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 = , j = ;
float x = 2.6, y = 1.8;
cout << setw() << i << setw() << j << endl;
cout << setw() << i*j << endl;
cout << setw() << x << setw() << y << endl; system("pause");
return ;
}

【运行结果】:

2 3
6
2.6 1.8

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

C++中输入输出十六进制八进制的更多相关文章

  1. 实验03——java十进制转二、八、十六进制;打印'中'的十六进制;进制转换的api

    package cn.tedu.demo; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @version 创建时间:2020年7月16日 上午10:22: ...

  2. C#中二进制,八进制,十六进制到十进制的相互转换

    1.十进制数字向二进制,八进制,十六进制字符串的转换,使用函数 Convert.ToString(int value, int toBase): 它可以把一个数字转换为不同进制数值的字符串格式,其中t ...

  3. linux中输入输出和重定向问题

    输入输出解释 当我们执行shell的时候,每个进程都和三个打开的文件有关系,并使用文件描述符来引用这些文件.但这些文件不容易记忆,所以shell给了相应的文件名: 0:输入文件-标准输入(它的命令是输 ...

  4. C语言中输入输出重定,freopen()妙用。

    使用的理由(范围):如果输入数据很庞大,需要一次又一次的重新输入和调试时可采用本函数. freopen ()函数: 1.格式 FILE * freopen ( const char * filenam ...

  5. C++ 进制转换 十进制十六进制八进制二进制相互转换

    思路: 下面我把相互转换的所有类型都写出来了.实际上都是通过十进制中转的,这样比较简单,写出X进制转成十进制和从十进制转成X进制的两份代码直接拷贝就完成了剩余的部分.哦,对,自己封装了一个charTo ...

  6. C语言中以十六进制输出字符型变量会出现'ffffff"的问题

    最近在做一个C的嵌入式项目,发现在C语言中用printf()函数打印字符型变量时,如果想采用"%x"的格式将字符型变量值以十六进制形式打印出来,会出现一个小问题,如下: char  ...

  7. [javaSE] 进制转换(二进制十进制十六进制八进制)

    十进制转二进制,除2运算 十进制6转二进制是 110  (注意从右往左写,使用算式从下往上写) 二进制转十进制,乘2过程 二进制110转十进制  0*2的0次方+1*2的1次方+1*2的2次方=6 对 ...

  8. HBase shell 中的十六进制数值表示

    在使用Hbase shell 进行get 或scan操作时,时不时会看到一些数值被转成了16进制, 就像下面那样 value=W\x5C5\x80 那么这个值具体等于多少? 查阅资料后发现算法如下 W ...

  9. oracle顺序控制语句goto、null和分页过程中输入输出存储、java程序的调用过程

    顺序控制语句1 goto建议不要使用 declare i number:=; begin loop dbms_output.put_line(i); then goto end_loop; end i ...

随机推荐

  1. .NET加密方式解析--散列加密

    在现代社会中,信息安全对于每一个人都是至关重要的,例如我们的银行账户安全.支付宝和微信账户安全.以及邮箱等等,说到信息安全,那就必须得提到加密技术,至于加密的一些相关概念,在这里就不说了. 这一次将会 ...

  2. 增强MyEclipse的代码自动提示功能

      一般在Eclipse ,MyEclipse代码里面,打个foreach,switch等 这些,是无法得到代码提示的(不信自己试试),其他的就更不用说了,而在Microsoft Visual Stu ...

  3. java 多线程 day16 CountDownLatch 倒计时计数器

    import java.util.concurrent.CountDownLatch;import java.util.concurrent.CyclicBarrier;import java.uti ...

  4. 生信-RPKM与FPKM学习[转载]

    转自:https://baike.baidu.com/item/RPKM/1197657 均反应基因的表达水平 1.RPKM的计算公式 分母是总共比对到这个基因的reads的数目(条 为单位),分母是 ...

  5. 深入理解Oracle调试事件:10046事件详解

    10046事件是SQL_TRACE的扩展,被戏称为"吃了兴奋剂的SQL_TRACE"       有效的追踪级别:              ① 0级:SQL_TRACE=FASL ...

  6. 随机深林和GBDT

    随机森林(Random Forest): 随机森林是一个最近比较火的算法,它有很多的优点: 在数据集上表现良好 在当前的很多数据集上,相对其他算法有着很大的优势 它能够处理很高维度(feature很多 ...

  7. cl查看类的内存布局

    查看单个类的内存布局 Microsoft Visual Studio编译器cl的编译选项可以查看源文件中某个C++类的内存布局,对于想了解某个对象的内存布局的人来说十分直观和方便. • 命令格式    ...

  8. sublime2常用插件

    Package Control 1. 安装方法 • 下载地址:https://sublime.wbond.net/Package%20Control.sublime-package • 将下载下来的P ...

  9. 自动填写IE的网页的输入框的内容

    procedure TForm1.PutData; var ShellWindow: IShellWindows; nCount: integer; spDisp: IDispatch; i,j,X: ...

  10. jQuery Ajax使用总结

    一.概述 jQuery对Ajax操作进行了封装,在jQuery中$.ajax()是属于最底层的方法,第2层是load().$.get()和$.post()方法,第三层是$.getScript()和$. ...