printf格式化输出

Posted by JackPeng on October 27, 2018

玩acm的都清楚,cin/cout在大家眼里跟没有一样,凡输入输出都是用c的函数的。

可偏偏c中没有bool这个类型,好吧,其实输出bool是当整形输出的。

#include <cstdio.h>
 
int  main()
{
   bool  b = true;
   printf("%d\n",b);
   bool  c = false;
   printf("%d\n",c);
   return 0;
}

顺便复习一下scanf和printf

1、scanf函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。

    常用于判断eof的情况啦。

2、%d 十进制有符号整数   

      %u 十进制无符号整数    

      %f 浮点数    

      %s 字符串     

      %c 单个字符     

      %p 指针的值     

      %e 指数形式的浮点数     

      %x,%X 无符号以十六进制表示的整数    

      %o 无符号以八进制表示的整数    

      %g 自动选择合适的表示法 

     注意:acm用的最多的当是  %lf    double类型           %lld       long long 类型       3、

(1). 可以在”%”和字母之间插进数字表示最大场宽。    

      例如: %3d 表示输出3位整型数, 不够3位右对齐。     

                %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,    小数点占一位, 不够9位右对齐。     

                %8s 表示输出8个字符的字符串, 不够8个字符右对齐。     

         如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。    但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;    若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。    

(2)若想在输出值前加一些0, 就应在场宽项前加个0。     例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。     

 (3)如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,  小数点前的数字代表最小宽度。    

      例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则    第9个字符以后的内容将被删除。