美文网首页
printf函数

printf函数

作者: silasjs | 来源:发表于2019-01-28 17:19 被阅读0次

位宽

格式化输出%mi中的m就是位宽
  • 指定位宽
//默认情况下位宽是右对齐,如果需要输入的类型宽度不够,会在左边补空格
int num = 999;
printf("正数位宽:%5d\n", num);
//如果在位宽改为负值,就会改变位宽的对齐方式为左对齐,如果需要输入的类型宽度不够,会在右边补空格
printf("负数位宽:%-5d\n", num);
//注意:如果指定了位宽,但是输出的内容超出了宽度,会按照实际的宽度来输出
printf("小于实际宽度的位宽:%2d\n", num);
//可以在位宽前面加上0,如果输出的内容宽度不够会用0替补,如果宽度已经够了,那么就输出实际宽度
printf("不足位宽补0:%05d\n", num);

输出结果如下
正数位宽:  999
负数位宽:999  
小于实际宽度的位宽:999
不足位宽补0:00999
  • 保留位数
    • %f默认会保留6位小数
    • 指定保留多少位小数:%.nf,其中n就是需要保留多少位小数,f用于输出实型
float fValue = 3.14;
printf("%f\n", fValue);
printf("%.3f\n", fValue);

输出结果如下:
3.140000
3.140

实型输出的问题

  • %f的各种坑
    • 超出指定保留位之后的数据不对,因为float类型有效位数是7位
    • 如何计算有效位?从第一个数开始计算
    • 如果输出的数据超出了有效位数,就会出现一些垃圾数据
//如果输出的数据超出了有效位数,就会出现一些垃圾数据
float floatValue = 3.141596254847;
printf("单精度类型数据:%.10f\n", floatValue);
        
//如果想完整的输出,那么必须将数据保存为double类型,因为double类型的有效位是15位
double doubleValue = 3.141596254847;
printf("双精度类型数据:%.10f\n", doubleValue);

输出结果如下:
单精度类型数据:3.1415963173
双精度类型数据:3.1415962548

使用通配符占位

  • 指定保留多少位小数时,可以通过*号占位,以后赋值具体保留的小数位
float fv = 3.1415926;
int count = 5;
printf("%.*f\n", count, fv);

输出结果如下:
3.14159

相关文章

  • C语言格式化输入输出

    本文主要介绍一下C语言中printf和scanf两个函数。 printf函数 printf函数被设...

  • 01文件IO之printf函数

    1 printf干了些什么 2write函数 3 printf函数调用过程 1printf 是 C 语言库函数,它...

  • 常用库函数

    输出函数: (1)printf函数:printf函数是格式输出函数,其函数原型包含在头文件”stdio.h”中.格...

  • 可变参函数

    例如可变参函数printf的函数原型/函数声明为:int printf(char *fmt, ...);其中参数表...

  • C语言基础知识:printf的输出格式,C/C++语言编程讲解

    C语言基础知识:printf的输出格式 printf()函数是格式输出函数,请求printf()打印变量的指令取决...

  • 格式化字符串漏洞利用

    printf函数中的漏洞printf函数族是一个在C编程中比较常用的函数族。通常来说,我们会使用printf([格...

  • printf函数

    打印基本类型 以下打印基本的数据类型, 如int, char, float等, 最后两行是以八进制和十六进制打印数...

  • printf函数

    位宽 格式化输出%mi中的m就是位宽 指定位宽 保留位数%f默认会保留6位小数指定保留多少位小数:%.nf,其中n...

  • printf("格式输出")

    头文件:#include printf()函数是最常用的格式化输出函数,其原型为: int printf(...

  • Printf函数&Scanf函数

    Printf函数(格式输出函数) printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(forma...

网友评论

      本文标题:printf函数

      本文链接:https://www.haomeiwen.com/subject/tttzjqtx.html