c++ cout<<1==0 为什么输出1?

I/0流是输入或输出的一系列字节,当程序需要在屏幕上显示输出时,可以使用插入操 作符“<<”向cout输出流中插入字符。例如:
当程序需要执行键盘输入时,可以使用抽取操作符 “>>”从cin输人流中抽取字符。例如:
不管把什么基本数据类型的名字或值传给流,它都能懂。
例如,下面的函数输出字符串和整数:

流的默认格式输出有时不能满足特殊要求,如:

  希望显示的是9.40,即保留两位小数,可是却显示了9.40007;默认显示6位有效位。 用控制符(manipulators)可以对I/O流的格式进行控制。控制符是在头文件iomanip.h中定义的对象。可以直接将控制符插入流中。常用 控制符如表2-4所列。

 表2-4 I/O流的常用控制符

没显示小数精度为n位  

使用控制符时,要在程序的头上加头文件iomanip.h。

  该程序在32位机器上运行通过。
在用浮点表示的输出中,setdivcision(n)表示有效位数。
第1行输出数值之前没有设置有效位数,所以用流的有效位数默认设置值6:第2个输出设置了有效位数0,C++最小的有效位数为1,所以作为有效位数设置 为1来看待:第3~6行输出按设置的有效位数输出。
在用定点表示的输出中,setdivcision(n)表示小数位数。
在用指数形式输出时,setdivcision(n)表示小数位数。
第8行输出用 setiosflags(ios::scientific)来表示指数表示的输出形式。其有效位数沿用上次的设置值8。
小数 位数截短显示时,进行4舍5入处理。

5.输出8进制和16进制数


8.强制显示小数点和符号

变量是程序分配给某个内存位置的名字,它可以存放信息。程序在使用变量前,必须先说明变量名和变量 类型。
不同的变量不能同名,变量名应该尽量反映出变量的用途,以增强程序的可读性。
在程序运行中,常量的值不可改变。常量也有各 种数据类型,也占有存储空间。各种数据类型的数据表示有一定的范围,越过了该范围, C++就要对该数据进行截取,使得数据不再正确。
利用 cout可以输出各种数据类型的数据,可以多种方式在屏幕上显示输出信息(包括特殊符号)。


· 每个回答都超有意思的

1、控制符int width()将用来调整字段的宽度,因为width是成员函数,所以要通过对象来调用,比如cout.width()将显示当前的字段宽度,默认为0,而cout.width(3)将把字段宽度设定为3。

注意:C++容纳字段的方式为给字段分配刚好合适的宽度来容纳字段,所以C++中默认的字段宽度为0,以适合于所有的字段。

2、成员函数fill()可以用来改变填充的字符,比如cout.fill(‘*'),使用*填充空白部分。

注意:fill函数在设置后将一直有效,除非被重新设定。这一点与width()十分不同。width只影响他设置后的下一个输出,再下一个字段输出后,后继的字段被恢复为默认值0。

C++输出数据:小数点以及精度问题。



· 繁杂信息太多,你要学会辨别

关于C++中cout实现输出的填充,宽度,对齐

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

如果程序中频繁出现 cout ,这样的操作极为不便,所以可以使用下面两种方法来解决。

方法一 :使用 std 命名空间

这样,后面程序中可以直接使用 cout ,而且std中的其他名字也可以直接使用,如 cinendl 等。

方法二 :使用 std 命名空间中的 cout

这样,后面程序中只可以直接使用 cout ,而 std 中的其他名字不可以可以直接使用。

i++++i 是有着不同的含义,和 cout 组合使用也会得到不同的结果,下面给出一段代码:

这段代码的结果是多少呢?
我们不妨先理解一下 cout 输出控制台的过程。看下面这幅图:
根据表达式来看, endl 会作为一个可以供 cout 接收的对象往前传,而 ++iendl 结合起来作为一个可以供 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

有时候,我们需要以不同的进制来输出数字,而默认输出是十进制,其他进制输出方法如下:

其中,oct 是八进制输出, dec 是十进制(效果和默认一样), hex 是十六进制输出(字母默认是小写字母)。这两个也包含在 std 中,即其全称分别是 std::oct

前提:包含库 < iomanip > ,这个库包含了对输入输出的控制。

可以看出,C++默认浮点数输出有效位数是 6 位(若前面整数位数大于 6 位,使用科学计数法输出),而通过以下几种方式可以更改输出精度:
(若前面整数位数大于 n 位,使用科学计数法输出)
所以,和 setprecision(n) 结合使用即可设置浮点数小数点后面数字的输出精度,位数不足的补零
以上均采用 “四舍五入” 的方法控制精度,三个控制符均包含在 std 命名空间中。

显示默认 6 位有效位数,两个控制符均包含在库 < iomanip > 中,std 命名空间中。

输出结果默认显示右对齐。三个控制符均包含在库 < iomanip > 中,std 命名空间中。

< iomanip > 库封装了很多对输入输出流的操作,常见用法总结如下:

设置字符填充,ch可以是字符常量或字符变量
设置输出有效位数为n位
设置字符宽度为n位,只对后一个有影响
实现对小数点后的数字的控制

我要回帖

更多关于 cout输出左对齐 的文章