用 法:

  int printf(const char *format,[argument]);

  format 参数输出的格式,定义格式为:

  %[flags][width][.perc] [F|N|h|l]type

  规定数据输出方式,具体如下:

  1.type 含义如下:

  d 有符号10进制整数

  i 有符号10进制整数

  o 有符号8进制整数

  u 无符号10进制整数

  x 无符号的16进制数字,并以小写abcdef表示

  X 无符号的16进制数字,并以大写ABCDEF表示

  F/f 浮点数

  E/e 用科学表示格式的浮点数

  g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数

  c 单个字符

  s 字符串

  % 显示百分号本身

  p 显示一个指针,near指针表示为:XXXX

  far 指针表示为:XXXX:YYYY

  n 相连参量应是一个指针,其中存放已写字符的个数

  2.flags 规定输出格式,取值和含义如下:

  无 右对齐,左边填充0和空格

  - 左对齐,右边填充空格

  + 在数字前增加符号 + 或 -

  一个空格 只对负数显示符号

  # 当type=c,s,d,i,u时没有影响

  type=o,x,X时,分别在数值前增加'0',"0x","0X"

  type=e,E,f时,总是使用小数点

  type=g,G时,除了数值为0外总是显示小数点 3.width 用于控制显示数值的宽度,取值和含义如下n(n=1,2,3...) 宽度至少为n位,不够以空格填充

  0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充 * 格

  式列表中,下一个参数还是width 4.prec 用于控制小数点后面的位数,取值和含义如下:

  无 按缺省精度显示

  0 当type=d,i,o,u,x时,没有影响

  type=e,E,f时,不显示小数点

  n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数

  type=其他,表示显示的最大宽度 .*

  格式列表中,下一个参数还是width

  5.F|N|h|l 表示指针是否是远指针或整数是否是长整数

  F 远指针

  n 近指针

  h短整数或单精度浮点数

  l 长整数或双精度浮点数

  1.一般格式

  printf(格式控制,输出表列)

  例如:printf("i=%d,ch=%c/n",i,ch);

  说明:

  (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:

  ①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。

  ②普通字符,即需要原样输出的字符。

  (2)“输出表列”是需要输出的一些数据,可以是表达式

  (3)printf函数的一般形式可以表示为

  printf(参数1,参数2,……,参数n)

  功能是将参数2~参数n按参数1给定的格式输出

  2.格式字符(9种)

  (1)d(或i)格式符。用来输出十进制整数,有以下几种用法:

  ①%d,按整型数据的实际长度输出。

  ②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

  ③%ld(%mld 也可),输出长整型数据。

  例如:long a=123456;

  printf("%ld",a);

  (2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。

  (3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可。

  (4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。

  参见:li4-3.c/*无符号数据的输出*/

  (5)c格式符,用来输出一个字符。格式:%c,%mc都可。

  (6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。

  参见:li4-5.c /*字符串的输出*/

  (7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。

  注意:单精度实数的有效位数一般为7位,双精度为16位。

  参见:li4-6.c/*输出单精度实数时的有效位数*/

  li4-7.c/*输出双精度实数时的有效位数*/

  li4-8.c/*输出实数时指定小数位数*/

  (8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。

  (9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出占宽度较小的一种)。

  3.说明

  (1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母;

  (2)“格式控制”字符串内可以包含转义字符;

  (3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:

  printf("%f%%",1.0/3);

 
格式化输出行不能超出 LINE_MAX 字节长度。

  下列环境变量影响 printf 命令的执行:

  LANG 在 LC_ALL 和相应的环境变量(以 LC_ 开头)没有指定语言环境时,确定语言环境编目使用的语言环境。

  LC_ALL 确定用于覆盖由 LANG 或其它任何 LC_ 环境变量设置的任何语言环境编目值的语言环境。

  LC_CTYPE 确定把文本字节数据顺序解释为字符的语言环境;例如,单一字节对应多字节字符的参数。

  LC_MESSAGES 确定写消息使用的语言。

  LC_NUMERIC 确定数字格式编排的语言环境。此环境变量影响使用 e、E、f、g 和 G 转换字符编写的数字的格式。

  Format 参数是包含三种对象类型的一个字符串:

  * 无格式字符复制到输出流。

  * 转换规范,每个规范导致在值参数列表中检索 0 个或更多个项。

  * 以下转义序列。在复制到输出流时,这些序列导致它们的相关操作在有此功能的设备上显示:

  \\ 反斜杠

  \a 警告

  \b 退格

  \f 换页

  \n 换行

  \r 回车

  \t 跳格

  \v 垂直跳格

  \ddd ddd 是 1、2 或 3 位八进制数字。这些转义序列作为由八进制数指定的具有数字值的字节显示。

  该命令返回值:

  0 成功完成。

  >0 发生错误。

  文件

 Linux系统中 /usr/bin/printf 包含 printf 命令。

C语言 printf 格式化输出函数的更多相关文章

  1. c语言中格式化输出函数的研究

    <一>; 1.前言 在gcc编程中,我们比较经常用到的字符格式化输出函数是printf的,实际上gcc继承了c语言处理字符具有强大功能的风格,它提供了一系列的格式化输出函数,主要存在两个库 ...

  2. C语言 printf格式化输出,参数详解

      有关输出对齐 int main(int argc, char* argv[]){ char insertTime[20] = {"1234567890"}; double in ...

  3. C语言printf格式化输出修饰符详解

    转换说明 输出 %a,%A 浮点数.十六进制数和p-计数法(C99) %c 一个字符 %d 有符号十进制数 %e,%E 浮点数,e计数法 %f 浮点数,十进制计数法 %g,%G 根据数值不同自动选择% ...

  4. c语言 printf格式化输出

    #include <iostream> #include<stdio.h> #include <cstring> using namespace std; int ...

  5. C语言printf()函数:格式化输出函数

    C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为:     int printf( char ...

  6. c语言的输入输出函数

    参考文章: http://blog.sina.com.cn/s/blog_784f40b80100psg9.html C语言输入输出函数分为两类: 1.格式化输入输出函数 2.非格式化输入输出 --- ...

  7. shell printf格式化输出语句

    printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 ech ...

  8. C printf格式化输出

    转载:https://blog.csdn.net/wucz122140729/article/details/98434702 格式化输出       格式化输出的函数有printf.sprintf和 ...

  9. C语言中输入输出函数

    1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据.pri ...

随机推荐

  1. Redis基本数据类型

    -------------------Redis基本数据类型------------------- 1.String 字符串     1.概念         1.String 是redis最基本的类 ...

  2. MySQL(八)之DML

    昨天晚上很晚的时候才写完MySQL的常用函数,今天给大家讲一下MySQL的DML.接下来让我们直接来学习了,今天感冒了.身体很难受下午的时候要去买一波药了,不然程序员也扛不住呀. DML全称Data ...

  3. 总结各种排序算法【Java实现】

    一.插入类排序 1.直接插入排序 思想:将第i个插入到前i-1个中的适当位置 时间复杂度:T(n) = O(n²). 空间复杂度:S(n) = O(1). 稳定性:稳定排序. 如果碰见一个和插入元素相 ...

  4. iOS js oc相互调用(JavaScriptCore 下)

    下来我们使用js调用iOS js调用iOS分两种情况 一,js里面直接调用方法 二,js里面通过对象调用方法 首先我们看第一种,直接调用方法. 其中用到了iOS的block 上代码 -(void)we ...

  5. HTML转义字符串

    HTML字符实体(Character Entities),转义字符串(Escape Sequence) 为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,> ...

  6. JPG、PNG和GIF图片的基本原理及优…

    JPG.PNG和GIF图片的基本原理及优化方法 一提到图片,我们就不得不从位图开始说起,位图图像(bitmap),也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的.这些点可以进行不同的 ...

  7. c++ Lambda函数学习

    或许,Lambda 表达式算得上是 C++ 11 新增特性中最激动人心的一个.这个全新的特性听起来很深奥,但却是很多其他语言早已提供(比如 C#)或者即将提供(比如 Java)的.简而言之,Lambd ...

  8. 结对作业1--基于GUI的四则运算

    201421123002 翁珊,201421123006 黄月梅,201421123007 徐晓珊 题目描述: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程 ...

  9. 201521123033《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 参考资料: 百度脑图 XMind 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 com.p ...

  10. 201521123052《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...