一、 printf的输出格式
1、控制整形宽度
以整型为例:
printf("%md", a);此处m为输出地宽度,默认为右对齐,左边填充空格;若a的实际长度大于m,则m失效。若改为printf("%0md", a);则左边填充0。
改为左对齐:printf("%-md", a), 默认右边填充空格。
2、控制小数精度:
以单精度为例:
printf("%.mf", a); 此处m为小数点后保留m位,若a的实际长度大于m,则把多出的部分四舍五入,不足则补零。
还有一种表示方式:printf("%n.mf", a); n为宽度,m为精度。
3、特殊格式:
pritnf("%*.*d", m, n, a);之所以说特殊,是因为你可以参数m和n对宽度和精度进行控制,或者说上面的两种情况是它的特殊形式。pritnf("%*d", m, a);和pritnf("%.*d", m, a);分别对应上面的2种形式。
二、cout的输出格式
cout有两种方式:可以用iomanip库中的函数,也可以不用,为了不让大家迷惑,现分开叙述。
1、不用iomanip
1).控制宽度
cout.width(m),m控制输出地宽度,默认右对齐,即cout.setf(ios::right),若想给位右对齐,则加上cout.setf(ios::left), 注意:cout.width(m)为一次性的,即用过一次后就失效了,而cout.setf(ios::right)不会,可用cout.unsetf(ios::right)取消。
2).控制精度
cout.precision(m),m为小数点的位数。注意:不足补充空格,与printf不同!!!
2、使用iomanip
1).控制宽度
cout<<setw(m)<<a<<endl;m为宽度,默认为右对齐,若改为左对齐,为cout<<setiosflags(ios::left)<<setw(m) <<a<<endl,设置宽度用过后不会失效,可用cout<<resetiosflags(ios::left);取消。
2).控制精度
setprecision(n), n为浮点数的数字个数,即有效数字。setiosflags(ios::fixed)用定点方式表示实数,两者合用可控制精度, 即cout<<setiosflags(ios::fixed)<<setprecision(m)<<a; m即为小数点的位数。注意:他们用过以后不会失效,可以用 cout<<resetiosflags(ios::fixed)取消。
限于能力有限,先写到此,以后还会补充。如有错误,请不吝赐教。