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
说明:
如果数据的实际宽度小于指定宽度,按右对齐的方
分享到:
相关推荐
其中:\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。 注意:在Turbo C 2.0中,字符型常量表示数的范围是-128到127,除非你把它声明为unsigned,这样就是0到255。 上面我们见到的\x,\n,\a等等都...
15.1 编译程序中的C++扩充功能可以用在C程序中吗? 15.2 C++和C有什么区别? 15.3 在C程序中可以用“∥”作注释符吗? 15.4 char,short,int和long类型分别有多长? 15.5 高位优先(big-endian)与低位优先...
给当前单元格输入文本型数据时,默认为( ) A:居中 B:左对齐 C:右对齐 D:随机 答案:B 计算机内所有的信息都是以( )形式来存放的 A:八进制 B:十进制 C:二进制 D:十六进制 答案:C 若A2单元内容为"李凌",B2单元格内容...
这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 27 2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 28 2.15 如何确定域在结构中的...
这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 2.15 如何确定域在结构中的字节偏移...
o 3.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部数据文件进行 "二进制" 读写。能否关掉填充, 或者控制结构域的对齐方式? o 3.11 为什么 sizeof 返回的值大于结构的期望值, 是不是尾部有填充? ...
部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域 的对齐方式? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.11 为什么sizeof 返回的值大于结构的期望值, 是不是尾部有填充? . . ...
1.1.3 十六进制. . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 计算机结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 内存. . . . . . . . . . . . . . . . . . . . . . . . . . ...
1.11 数据类型..................................................................................................29 2 入门指南...............................................................................