1.调用格式为 printf("<格式化字符串>", <参量表>);
其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。

2.格式化字符

%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
说明:
(1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。超过9位,按实际输出。%8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。 但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。 例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。
(2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。例如: %ld 表示输出long整数, %lf 表示输出double浮点数。
(3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。例如: %-7d 表示输出7位整数左对齐,%-10s 表示输出10个字符左对齐。

3. 一些特殊规定字符
\n换行
\f清屏并换页
\r回车
\t Tab符
\xhh表示一个ASCII码用16进表示,
其中hh是1到2个16进制数

int a=1234;
    printf("a=%d\n",a);    //a=1234
    printf("a=%2d\n",a);   //a=1234    超过2位,按实际输出
    printf("a=%6d\n",a);   //a=  1234  不足6位,右对齐
    printf("a=%06d\n",a);  //a=001234  不足6位,前面补0
    printf("a=%-6d\n",a);  //a=1234    '-'左对齐

int* i=&a;
    printf("i=%p\n",i);    //i=0012FF44  输出指针的值,即地址

float m=8888.8888;     //float 单精度型浮点数 有效位数是6位或7位,根据不同的浮点数会有不同
    float m1=8888.8888f;    //在后面加上f或F,编译警告:truncation from'const double'to 'float'
                            //编译器默认浮点数为double
    float m2=8888.888f; 
    double n=8888.8888;
    double n1=8888888888.88888888;  //double 双精度型浮点数 有效位数是15位
    printf("m=%f\n m1=%f\n m2=%f\n n=%lf\n n1=%f\n",m,m1,m2,n,n1); // m=8888.888672
                                                                //  m1=8888.888672    
                                                                //  m2=8888.887695
                                                               // n=8888.888800
                                                               // n1=8888888888.888889
                                                               //%f的默认输出小数位数就是6位不管有没有l
    /*printf的%f说明符的确既可以输出float型又可以输出 double型。 根据"默认参数提升"规则(在printf这样的函数的
    可变参数列表中 ,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到
    双精度数。严格地讲,%lf在printf下是未定义的,但是很多系统可能会接受它。要确保可移植性,就要坚持使用%f。*/

printf("m4=%4.2f\n",m);   //宽度总共4位,小数两位,小数点一位,整数一位,这里整数超过宽度规定,按实际整数位输出
    printf("m5=%9.6f\n",m);   //浮点数小数部分不足6位,右对齐
    printf("m6=%9.2f\n",m);   //整数部分不足6位,右对齐;小数部分超过2位,四舍五入

char c[20]="Hello,world!";
    printf("c=%s\n",c);   
    printf("c=%6.9s\n",c);  //c=Hello,wor  6.9s表示输出一个长度长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。

c++ printf 使用相关推荐

  1. 关于C语言中printf函数“输出歧视”的问题

    目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...

  2. Go 学习笔记(46)— Go 标准库之 fmt(输入/输出格式化参数、Printf/Fprintf/Sprintf区别、Println/Fprintln/Sprintln 区别)

    1. 概述 import "fmt" fmt 包实现了类似 C 语言 printf 和 scanf 的格式化 I/O .格式化动作( verb )源自 C 语言但更简单. 2. P ...

  3. c语言字符串 s,c – printf格式字符串中“% – *.* s”的含义是什么

    你可以在这里阅读printf的手册页: http://pubs.opengroup.org/onlinepubs/009695399/functions/fprintf.html.但是它更像是法律文本 ...

  4. printf格式化输出几点注记

    搞了很多年c/c++,有很多细小的东西,曾经不止一次遇到,可是一直都是放在零散的地方,要用的时候怎么也找不到,今天,我痛下决心,改掉不良习惯,把这些经验或是tips记录在这里,便于日后查找. 1.在统 ...

  5. PHP函数printf()、sprintf()的用法

    printf()函数优点在于可以格式化输出 格式: %['padding_character][-][width][.precision]type 所有的转换说明都是以%开始,如果想打印一个%符号,必 ...

  6. printf(%d, -10u); 这个输出什么呀, 0或1?

    printf("%d", -1<0u); 这个输出什么呀, 0或1? 周银辉 既然我这么问了, 那么答案自然不是1,而是0 看看下面的代码: 对于-1+0u输出为-1,似乎理 ...

  7. fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出

    格式化输入输出 1.         fprintf(格式化输出数据至文件) 相关函数  printf,fscanf,vfprintf 表头文件  #include<stdio.h> 定义 ...

  8. 【C】printf warning: unknown conversion type character ‘l‘ in format [-Wformat=]

    1.问题描述 在使用printf.fprintf打印long long类型时报错 printf warning: unknown conversion type character 'l' in fo ...

  9. 【linux】printf在终端打印彩色hello world

    代码 #include <stdio.h>#define NONE "\033[m" #define RED "\033[0;32;31m" #de ...

  10. c语言自定义char*函数返回值是乱码_[每日C语言」printf()函数的修饰符和返回值...

    在上一个小demo<printf()函数(1)>中主要说了一下printf()函数的转换说明符,这些转移说明符是可以被修饰的.我们可以在%d和定义的转义字符之间通过插入修饰符对基本的转换说 ...

最新文章

  1. Delphi XE5 for Android (十)
  2. tensorflow随笔-acosh,acos
  3. 腾讯微博Android客户端开发——OAuth认证介绍
  4. linux服务器 版本 比例,Linux比例近半 服务器操作系统混战开始
  5. 人体轮廓_人体艺术:赏世界著名的女人体油画:身体轮廓
  6. java类加载器ClassLoader浅析
  7. Java 并发编程实战 -- 常见概念
  8. linux基于i2c-tools快速搭建设备读写环境
  9. python3 numpy安装 linux_Linux 下安装 numpy 和 scipy
  10. 算法题打卡-超人进化(剑指offer第一天)
  11. 计算机打不开guest用户,win10系统打不开guest账户的解决方法
  12. lamp mysql 密码_lamp 如何修改mysql密码
  13. 智云大咖秀:怎样的稳定器才是摄影师的“灵魂辅助”?
  14. 二极管和三极管的导通电压
  15. [4G5G专题-64]:RF层 - 无线电磁波的基本原理与传输特性
  16. Cobalt Strike Veil 免杀过杀软(子篇10)
  17. ECCV 2022 | 清华腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法
  18. 高效能人士的2个习惯:以终为始与要事第一
  19. 25-30K ☀️|网络工程师职业技巧与经典面试题✨
  20. PID算法控制平衡小车直立

热门文章

  1. java cacti_cacti监控安装
  2. 我眼中的 Electron
  3. win7计算机腾讯视频无法删除,处置win7系统清理腾讯视频垃圾缓存的图文方法
  4. C# EventHandler
  5. 计算机应该注意的一些点
  6. 百度图像模糊程度判断
  7. ubuntu安装软件常用命令
  8. mac中Typora+PicGo图床+gitee 保姆级教程
  9. Java LTS版本——Java 8新特性
  10. 中华医学期刊文献去哪里查阅下载