C++的cout函数

235 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情

3.2 cout<<的用法

3.2.1 cout<<可以识别输出数据类型

 int carrots=25;
 cout << carrots;

为什么这里会输出25,而不是字符串carrots,也不是字符串"25"

因为cout很聪明——它可以识别数据类型,从而改动显示的字符,即将carrots变量转化成整形数25(二进制存储),随后转化成字符2和5

当然你也可以通过强制类型转换来指定输出类型

3.2.2 cout输出格式

设置c++输出格式,主要有两种办法:

  • 在输入流与输出流中使用控制符
  • 用流对象的成员函数控制输出格式

使用控制符设置输出显示:

 cout<<setw(10)<<a<<endl;  //设置了输出的宽度为10,多余默认用空格补齐` 

使用控制符:

img

输出为:

1   1 1

而第二种,通过调用流对象cout中用于控制输出格式的成员函数来控制输出格式,例如:

 cout.width(10)//设置了输出的宽度为10,同样的多余的默认用空格补齐 

而,调用输出流对象的成员函数:

img

输出为:

1   1 1 1

二者都只能影响下一次的输出格式

3.2.2.1固定宽度setw(n)

设置宽度setw(n),n即为输出固定宽度,默认以空格填充,如果加上setfill('0')即以‘0’为填充,‘’内可改为其他字符,例如:

img

输出:

0000000001 *********1

3.2.2.2 有效位数setprecision(n)

设置有效位数setprecision(n),n即为设置位数,例如:

img

221.116 //默认六位 221.1161101 //通过设置十位

3.2.2.3 小数位数setiosflags(ios::fixed)

设置小数点后位数,先通过setiosflags(ios::fixed)设置固定小数点的位数,再通过setprecision(n),设置小数点后固定保留n位数 例如: img

输出:

221.116 //默认六位 1.100000 //固定6位,空位自动补零 221.116110 //固定六位,后位四舍五入 221.11611012

3.2.2.4 指数输出小数位数setiosflags(ios::scientific)

设置为指数形式输出,setiosflags(ios::scientific),同上面设置小数后位数一样,与setprecision连用设置,不常用,不作例证

3.2.2.5 按进制输出

按进制输出,dec为十进制,hex为16进制,而也可以通过setbase(n),直接设置n进制,例如:

img

输出:

11111 11111 2b67 25547 2b67