资讯动态

C++中cout的格式使用详细介绍

发布时间:2026/10/15 7:01:46 来源:尧图企业网站定制
1.cout和i/i/i的组合使用i 和 i 是有着不同的含义和 cout 组合使用也会得到不同的结果下面给出一段代码1234567#include iostreamusingnamespacestd;intmain(){inti 1;cout i i i i i endl;return0;}这段代码的结果是多少呢A.23345B.22335C.54535D.53525…我们不妨先理解一下 cout 输出控制台的过程。看下面这幅图根据表达式来看 endl 会作为一个可以供 cout 接收的对象往前传而 i 和 endl 结合起来作为一个可以供 cout 接收的对象往前传依次递推下去。物理实现上需要一个栈来保存可以供 cout 接收的对象然后从右向左放到这个栈里然后依次弹出输出在屏幕上。其中 i 和 i 会在栈里面保存 i 的引用而 i 会在栈里面保存数字过程如下第一步将 endl 压入栈中 i 值不变第二步将 i 的引用压入栈中 i 的值加 1 变成 2因为是 i 第三步将 2 压入栈中 i 的值加 1 变成 3因为是 i 第四步将 i 的引用压入栈中 i 的值不变因为是 i 第五步将 3 压入栈中 i 的值加 1 变成 4因为是 i 第六步将 i 的引用压入栈中 i 的值加 1 变成 5因为是 i 第七步将栈里的数据依次弹出即可得到 53525 。因为i的值是 5 所以所有 i 的引用都是 5 2.用不同进制输出数字方法一用控制符 dec十进制,hex十六进制,oct八进制123456789101112131415161718192021222324#include iostreamusingnamespacestd;intmain(){intchest 42;// decimal integer literalintwaist 0x42;// hexadecimal integer literalintinseam 042;// octal integer literalcout Monsieur cuts a striking figure!\n;cout chest chest (42 in decimal)\n;cout waist waist (0x42 in hex)\n;cout inseam inseam (042 in octal)\n;chest 42;waist 42;inseam 42;cout Monsieur cuts a striking figure! endl;cout chest chest (decimal for 42) endl;cout hex;// manipulator for changing number basecout waist waist (hexadecimal for 42) endl;cout oct;// manipulator for changing number basecout inseam inseam (octal for 42) endl;// cin.get(); //有些设备的运行窗口只弹出一下加上该句可以让窗口停留return0;}运行结果在默认情况下cout以十进制格式显示整数其中oct是八进制输出dec是十进制效果和默认一样hex是十六进制输出字母默认是小写字母。这两个也包含在std中即其全称分别是std::oct、std::dec、std::hex这三个控制符包含在库 iostream 中。注意默认格式为十进制在修改格式之前原来的格式将一直有效。修改后的格式一直有效直到更改它为止方法二使用setbase(n)1234567891011121314#include iostream#include iomanipusingnamespacestd;intmain(){inti 123456;cout i endl;cout dec i endl;cout 八进制 oct i endl;cout 十六进制(小写字母) hex i endl;cout setiosflags(ios::uppercase);cout 十六进制大写字母 hex i endl;cout 八进制 setbase(8) i endl;cout 十六进制 setbase(16) i endl;}setbase(n)表示以n进制显示包含在库 iomanip 中n只能取8,10,16三个值。setiosflags(ios::uppercase)表示将字母大写输出包含在库 iomanip 中。以上均包含在std命名空间中。3.调整字段宽度width函数将长度不同的数字放到宽度相同的字段中该方法原型为int width()int width(int i)第一种格式返回字段宽度的当前设置;第二种格式将字段宽度设置为i个空格并返回以前的字段宽度值。这使得能够保存以前的值以便恢复宽度值时使用。注意width()方法只影响接下来显示的一个项目然后字段宽度将恢复为默认值。1234567891011121314151617181920212223#include iostreamusingnamespacestd;intmain(){intw cout.width(30);cout default field width w :\n;inta;cout.width(10);cout cout.width(10) endl;//返回当前字段的宽度cout.width(5);cout N:;cout.width(8);cout N * N:\n;for(longi 1; i 100; i * 10){cout.width(5);cout i :;cout.width(8);cout i * i :\n;}return0;}也可以使用setw(int n)来设置输出域宽。1234567#include iostream#include iomanipusingnamespacestd;intmain(){cout s setw(8) a endl;//s与a之间有7个空格cout s setw(3) abcd endl;}setw()只对其后面紧跟的输出产生作用如上例中表示a共占8个位置不足的7个位置用空格填充。若紧跟的输出的内容超过setw()设置的长度输出结果存在问题。填充字符在默认情况下cout用空格填充字段中未被使用的部分可以用fill()成员函数来改变填充字符。控制符包含在库 iomanip 中std命名空间中。12345678910111213141516#include iostreamusingnamespacestd;intmain(){cout.fill(*);constchar* staff[2] {Waldo Whipsnade,Wilmarie Wooper};longbonus[2] {900, 1350};for(inti 0; i 2; i){cout staff[i] : $;cout.width(7);cout bonus[i] \n;}return0;}注意与字段宽度不同的是新的填充字符将一直有效直到更改它为止。4.设置浮点数的显示精度方法一C的默认精度为六位但末尾的0将不显示。precision()成员函数使得能够选择其他值与fill类似新的精度设置将一直有效直到被重新设置。123456789101112131415#include iostreamusingnamespacestd;intmain(){floatprice1 20.40;floatprice2 1.9 8.0 / 9.0;cout \Furry Friends\ is $ price1 !\n;cout \Fiery Fiends\ is $ price2 !\n;cout.precision(2);cout \Furry Friends\ is $ price1 !\n;cout \Fiery Fiends\ is $ price2 !\n;return0;}方法二前提包含库 iomanip 这个库包含了对输入输出的控制。12345678910111213#include iostream#include iomanipusingnamespacestd;intmain(){doublei 3333.1415926;cout i endl;cout setprecision(3) i endl;cout setprecision(9) i endl;cout setiosflags(ios::fixed);cout i endl;cout fixed setprecision(3) i endl;cout setprecision(9) fixed i endl;}可以看出C默认浮点数输出有效位数是 6 位若前面整数位数大于 6 位使用科学计数法输出而通过以下几种方式可以更改输出精度1.使用 setprecision(n) 即可设置浮点数输出的有效位数若前面整数位数大于 n 位使用科学计数法输出2.使用 setiosflags(ios::fixed) 或 fixed表示对小数点后面数字的输出精度进行控制所以和 setprecision(n) 结合使用即可设置浮点数小数点后面数字的输出精度位数不足的补零以上均采用 “四舍五入” 的方法控制精度三个控制符均包含在 std 命名空间中。打印末尾的0和小数1234567891011121314151617#include iostreamusingnamespacestd;intmain(){floatprice1 20.40;floatprice2 1.9 8.0 / 9.0;cout.setf(ios_base::showpoint);cout \Furry Friends\ is $ price1 !\n;cout \Fiery Fiends\ is $ price2 !\n;cout.precision(2);cout \Furry Friends\ is $ price1 !\n;cout \Fiery Fiends\ is $ price2 !\n;// std::cin.get();return0;}以上就是C中cout的格式使用的详细内容

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑