`
shappy1978
  • 浏览: 675867 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

C++中标准输入输出的格式控制 (十六进制输入输出,输出数据对齐)

 
阅读更多
C++中标准输入输出的格式控制 (十六进制输入输出,输出数据对齐) 

2009-01-07 21:56:35|  分类: C/C++開發 |  标签:计算机语言   |字号 订阅
今天做实验时,突然发现不会用cout以16进制输出数据了,于是上网找之,发现下面的文字正是需要的,故帖于此,请需者自取之。
同时自我批评一下,连这么基本的东西都不掌握......

此文来源:http://edept.seu.edu.cn/Extend/CLanguage/courses/JcnrCh01-8-3.htm

1.8.3   输入输出的格式控制

◆   1、数的进制

默认进制:
默认状态下,数据按十进制输入输出。如果要求按八进制或十六进制输入输出,在cin或cout中必须指明相应的数据形式,oct为八进制,hex为十六进制,dec为十进制。

举例:

int i, j, k, l;
cout<<”Input i(oct), j(hex), k(hex), l(dec):”<<endl;
cin>>oct>>i; //输入为八进制数
cin>>hex>>j; //输入为十六进制数
cin>>k; //输入仍为十六进制数
cin>>dec>>l; //输入为十进制数
cout<<”hex:”<<”i=”<<hex<<i<<endl;
cout<<”dec:”<<”j=”<<dec<<j<<′\t′<<”k=”<<k<<endl;
cout<<”oct:”<<”l=”<<oct<<l;
cout<<dec<<endl; //恢复十进制输出状态

【执行结果】:
(1)输出提示:Input i(oct), j(hex), k(hex), l(dec):
(2)此时从键盘输入: 032 0x3f 0xa0 17 <CR>
(3)输出结果为:

hex:i=1a
dec:j=63 k=160
oct:l=21

几点说明:

使用不带.h的头文件<iostream>时,必须在cin中指明数制,否则从键盘输入时,不认八进制和十六进制数开头的0和0x标志。指明后可省略0和0x标志。

进制控制只适用于整型变量,不适用于实型和字符型变量。

输入数据的格式、个数和类型必须与cin中的变量一一对应,否则不仅使输入数据错误,而且影响后面其他数据的正确输入。

在cin或cout中指明数制后,该数制将一直有效,直到重新指明使用其他数制。

◆   2、数据间隔

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

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

举例:

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;

则输出结果为:
      2          3
          6
      2.6      1.8

说明:

如果数据的实际宽度小于指定宽度,按右对齐的方
分享到:
评论

相关推荐

    c/c++ 学习总结 初学者必备

     其中:\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。  注意:在Turbo C 2.0中,字符型常量表示数的范围是-128到127,除非你把它声明为unsigned,这样就是0到255。  上面我们见到的\x,\n,\a等等都...

    C 语言编程常见问题解答.chm

    15.1 编译程序中的C++扩充功能可以用在C程序中吗? 15.2 C++和C有什么区别? 15.3 在C程序中可以用“∥”作注释符吗? 15.4 char,short,int和long类型分别有多长? 15.5 高位优先(big-endian)与低位优先...

    福师《计算机应用基础》在线作业一-0005.672D35.doc

    给当前单元格输入文本型数据时,默认为( ) A:居中 B:左对齐 C:右对齐 D:随机 答案:B 计算机内所有的信息都是以( )形式来存放的 A:八进制 B:十进制 C:二进制 D:十六进制 答案:C 若A2单元内容为"李凌",B2单元格内容...

    《你必须知道的495个C语言问题》

    这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 27  2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 28 2.15 如何确定域在结构中的...

    你必须知道的495个C语言问题

    这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 2.15 如何确定域在结构中的字节偏移...

    C语言FAQ 常见问题列表

    o 3.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部数据文件进行 "二进制" 读写。能否关掉填充, 或者控制结构域的对齐方式? o 3.11 为什么 sizeof 返回的值大于结构的期望值, 是不是尾部有填充? ...

    你必须知道的495个C语言问题(PDF)

    部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域 的对齐方式? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.11 为什么sizeof 返回的值大于结构的期望值, 是不是尾部有填充? . . ...

    nasm PC汇编语言 教程

    1.1.3 十六进制. . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 计算机结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 内存. . . . . . . . . . . . . . . . . . . . . . . . . . ...

    emWin5用户手册(中文)

    1.11 数据类型..................................................................................................29 2 入门指南...............................................................................

Global site tag (gtag.js) - Google Analytics