printf 定义

printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。printf函数调用的一般形式为:

int printf(char *format, arg1, arg2, ...);

printf格式

printf 实例

我们需用一个数字的实例来说明一些问题首先我们将几个格式先讲明一下然后介绍

printf("%(符号)(位).(小数位)(格式));
printf("%-5.3s\n");

(1) 负号,用于指定被转换的参数按照左对齐的形式输出。

(2) 数,用于指定最小字段宽度。转换后的参数将打印不小于最小字段宽度的字段。如果有必要,字段左边(如果使用左对齐的方式,则为右边)多余的字符位置用空格填充以保证最小字段宽。.“点” 号用于将字段宽度和精度分开。

(3) 小数位数,用于指定精度,即指定字符串中要打印的最大字符数、浮点数小数点后的位数、整型最少输出的数字数目。

(4) 字母 h 或 l, 字母 h 表不将整数作为 short 类型打印, 字母 l 表示将整数作为 long类型打印。

#include <stdio.h>
int main() {int n = 13579;printf("n=%-3d\n", n); // 左对齐printf("n=%d\n", n);   // a=1234printf("n=%2d\n", n);  // 位数不足,实际情况输出printf("n=%8d\n", n);  // 位数不足,右对齐printf("n=%-8d\n", n); // 位数不足,符号原因左对齐printf("n=%08d\n", n); // 位数不足,右对齐,补0
}

字符 意义
%s 例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)
%ms 输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格
%-ms 如果串长小于m,则在m列范围内,字符串向左靠,右补空格
%m.ns 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格
%-m.ns 其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出
#include <stdio.h>int main() {char a[20] = "hello world";printf("a=%s\n", a); printf("a=%10s\n", a);  出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格printf("a=%.10s\n", a);  printf("a=%-10s\n", a);  printf("a=%.15s\n", a); printf("a=%15.10s\n", a);printf("a=%-15.10s\n", a);return 0;
}

引用shiney 博客内容

 float m=8888.8888;     //float 单精度型浮点数 有效位数是6位或7位,根据不同的浮点数会有不同float m1=8888.8888f;    //在后面加上f或F,编译警告:truncation from'const double'to 'float'//编译器默认浮点数为doublefloat 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个字符以后的内容将被删除。

转载于:https://www.cnblogs.com/causal360/p/4770373.html

C 语言 printf 输出详解相关推荐

  1. C语言printf函数详解和示例

    文章目录 1.类型符(type) 2.宽度(width) 3.对齐标志(flags) 4.精度(prec) 5.格式化输出到字符串 6.获取视频教程 7.版权声明 C语言格式化输出的函数有printf ...

  2. C语言printf函数详解

    本文已整合到C语言标准库深度解读 printf是绝大多数人接触的第一个C语言函数,但绝大多数人对printf的认识也就到了hello world为止了,很多人甚至看不懂这个函数的声明: int pri ...

  3. c语言printf()用法详解

    printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息.在编写程序时经常会用到此函数.函数的原型为: int printf(const char *format, ...) ...

  4. 单片机推挽输出c语言,单片机IO口科普:推挽输出、开漏输出详解

    原标题:单片机IO口科普:推挽输出.开漏输出详解 在学单片机和选用逻辑器件的时候我们常别人说这款芯片是推挽输出驱动能力强,这个引脚是开漏输出需要加上拉电阻. 是不是有时候感觉一头雾水? 今天就详解一下 ...

  5. linux中的shell有printf吗,Linux Shell系列教程之(八)Shell printf命令详解

    在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对Shell printf命令有了一个简略的介绍,本篇给大家详细介绍下Shell中的printf命令. 一.Shell p ...

  6. C语言再学习 -- 详解C++/C 面试题 2

    (经典)C语言测试:想成为嵌入式程序员应知道的0x10个基本问题. 参看:嵌入式程序员面试问题集锦 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define ...

  7. Linux Shell脚本入门教程系列之(八)Shell printf命令详解

    本文是Linux Shell脚本系列教程的第(八)篇,更多shell教程请看:Linux Shell脚本系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对She ...

  8. 【C语言】函数详解(入门到进阶)

    目录 前言 一.什么是函数 二.函数的构成 三.函数的调用和声明 四.函数的参数 五.函数的递归 总结 写在后面 前言 最近帮家里的小朋友整理一些学习C语言的知识点 有整体入门基础文章--[C语言]拯 ...

  9. 一个简单的C语言程序(详解)

    C Primer Plus之一个简单的C语言程序(详解) #include <stdio.h>int main(void) //一个简单的 C程序 {int num; //定义一个名为 n ...

最新文章

  1. GPU上的基本线性代数
  2. 深入浅出卷积神经网络及实现!
  3. 万字详解,JDK1.8的Lambda、Stream和日期的使用详解
  4. 一个 http 请求的曲折经历
  5. 操作系统中PV操作之顾客理发师问题
  6. [Java基础]Random
  7. 【渝粤教育】广东开放大学 社会工作行政 形成性考核 (52)
  8. Find命令搜索过去一段时间内修改过的文件
  9. Ubuntu服务启动脚本
  10. java 拦截器的作用?
  11. 在ArcMap离线加载海量卫星影像的方法
  12. JAVA以及常用开源框架读音发音和介绍
  13. comsol matlab script,comsol script
  14. 在Windows 2012 R2上安装Intel I217-V/I218-V网卡驱动
  15. at89c2051 定时器用法 c语言编程资料,用AT89C2051单片机制作的数字电容表.doc
  16. 真正中文攻略之 SAKURA~雪月華~ 花鳥風月プレミアムエディション 汉化、攻略...
  17. Linux安装postman工具
  18. 手机软件升级文件如何恢复
  19. 利用IDEA工具导入csv表格文件到数据库
  20. python之购物车(详解list tupe 循环)

热门文章

  1. ***出更--获取源代码的***
  2. 网络安装centos5.4
  3. ninjala服务器维护,Ninjala2.0版本更新内容一览
  4. python处理csv文件将id相同的行合并到同一行并用符号将其隔开_Python探索性数据分析,这样才容易掌握...
  5. matlab将图片旋转的代码_【MATLAB】钟表
  6. java多线程的底层实现_多线程的底层实现机制 - 欢迎来到古怪匹诺曹的开发世界 - OSCHINA - 中文开源技术交流社区...
  7. 06MySQL基本函数的使用
  8. java 字符串 常量_Java进阶——Java中的字符串常量池
  9. php正则表达式 重复字符,php正则表达式匹配可能的重音字符
  10. 1加6投屏_6月的早餐,1杯牛奶加燕麦,营养健康又美味,饱腹感很强