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);

(4)格式字符表参见下表

表4.1 printf格式字符

格式字符 说 明

d,i 以带符号的十进制形式输出整数(正数不输出符号)

o 以八进制无符号形式输出整数(不输出前导符0)

x,X

以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出

u 以无符号十进制形式输出整数

c 以字符形式输出,只输出一个字符

s 输出字符串

f 以小数形式输出单、双精度数,隐含输出6位小数

e,E 以指数形式输出实数

g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0

表4.2 printf的附加格式说明字符

字符

说明

字母l

用于长整型整数,可加在格式符d、o、x、u前面

m(代表一个正整数)

数据最小宽度

n(代表一个正整数)

对实数,表示输出n位小数;对字符串,表示截取的字符个数

-

输出的数字或字符在域内向左靠

程序例:

#include

int main()

{

printf("Hello,world\n");

while(1);

}

#include

int main()

{

int i = 1, j =2;

printf("%d %d\n",i,j);

while(1);

}

printf

命令

用途

写格式化输出。

语法

printf Format [ Argument ... ]

描述

printf 命令转换、格式化并写 Argument 参数到标准输出。Argument 参数是由 Format

参数控制格式化的。格式化输出行不能超出 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 位八进制数字。这些转义序列作为由八进制数指定的具有数字值的字节显示。

Argument 参数是一个或多个字符串的列表,它在 Format 参数的控制下被写到标准输出。

Format 参数在必要的情况下会经常重新使用以满足 Argument 参数。将好像提供了空字符串 Argument

一样评估任何额外的 c 或者 s 转换规范;其它额外转换规范将好像提供了 0 Argument 一样评估。此处 Format

参数不包含转换规范仅出现 Argument 参数,结果是不确定的。

每个 Format 参数中的转换规范都具有如下顺序的语法:

1. % (百分号)。

2. 零或更多的选项,修改转换规范的含义。选项字符和它们的含义是:

- 转换结果在字段中左对齐。

+ 符号转换结果常以符号(+ 或者 -)开始。

空格 如果符号转换的第一个字符不是符号,结果的前缀将是空格。如果空格和 + 选项字符都显示,则忽略空格选项字符。

# 此选项指定值转换到备用格式。对于 c、d、i, u 和 s 转换,选项没有作用。对于 o

转换,它增加精度来强制结果的第一数字是 a、0(零)。对于 x 和 X 转换,非零结果分别具有 0x 或 0X 前缀。对于 e、E、

f、g 和 G 转换,结果通常包含基数字符,即使基数字符后没有数字。对于 g 和 G 转换,结尾零不象通常一样除去。

0 对于 d、i、o、 u、x、e、 E、f、g 和 G

转换,前导零(跟在符号或底数的后面)用于填充字段宽度,将不用空格填充。如果显示 0(零)和 -(减号)选项,0(零)选项被忽略。对于

d、i、o、u、x 和 X 转换,如果指定精度,0(零)选项将被忽略。

注:

其它转换,没有定义其行为。

3.

可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。如果指定了左边调整选项,字段将在右边填充。如果转换结果宽于字段宽度,将扩展该字段以包含转换后的结果。不会发生截断。然而,小的精度可能导致在右边发生截断。

4. 可选的精度。精度是一个 .(点)后跟十进制数字字符串。如果没有给出精度,按 0(零)对待。精度指定:

* d、o、i、 u、x 或 X 转换的最少数字显示位数。

* e 和 f 转换的基数字符后的最少数字显示位数。

* g 转换的最大有效数字位数。

* s 转换中字符串的最大打印字节数目。

5. 指示要应用的转换类型的一个字符,例如:

% 不进行转换。打印一个 %(百分号)。

d, i

接受整数值并将它转换为有符号的十进制符号表示法。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是

1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。

o

接受整数值并将它转换为有符号的八进制符号表示法。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是

1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。不用八进制值表示字段宽度。

u

接受整数值并将它转换为无符号的十进制符号表示法。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是

1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。

x, X 接受整数值并将它转换为十六进制符号表示法。字母 abcdef 用于 x 转换,字母 ABCDEF 用于 X

转换。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是

1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。

f 接受浮点或者双精度值并将它转换为十进制符号表示法,格式为 [-]

ddd.ddd。基数字符(在这里显示为十进制点)后的数字位数等于规定的精度。 LC_NUMERIC

语言环境编目确定在这个格式中使用的基数字符。如果不指定精度,则输出六个数字。如果精度是 0(零),将不显示基数字符。

e, E 接受浮点或者双精度值并将它转换为指数表示的形式 [-]

d.dde{+|-}dd。在基数字符前有一个数字(在这里显示为十进制点),基数字符后的数字位数等于规定的精度。 LC_NUMERIC

语言环境编目确定在这个格式中使用的基数字符。如果不指定精度,则输出六个数字。如果精度是 0(零),将不显示基数字符。E

转换字符在指数前生成带 E 而不是带 e

的数字。指数通常至少包含两个数字。然而,如果要打印的指数值大于两个数字,必要时需要打印附加指数数字。

g、G 接受浮点和双精度值并转换为 f 或 e 转换字符的样式(或在 G 转换的情况下是

E),用精度指定有效数字的个数。尾零将从结果中除去。基数字符只有在其后是数字时显示。使用的样式取决于转换的值。样式 g

仅在转换的指数结果小于 -4,或大于或等于精度时使用。

c 接受值将其作为字符串并打印字符串中的第一个字符。

s

接受值将其作为字符串并打印字符串中的字符直到字符串结束或者达到精度指示的字符个数。如果没有指定精度,打印全部字符直到出现第一个空字符。

b

接受值将其作为字符串,可能包含反斜杠转义序列。打印来自转换字符串的字节直到字符串结束或者达到精度规范指示的字节数。如果没有指定精度,打印全部字节直到出现第一个空字符。

支持下列反斜杠转义序列:

* 先前列出的反斜杠转义序列在 Format 参数描述下。这些转义序列将被转换到它们表示的单个字符。

* \c(反斜杠 c)序列,它不显示并使 printf 命令忽略 Format

参数中的字符串参数包含的剩余的所有字符串,所有剩余的字符串参数和所有附加字符。

退出状态

该命令返回以下出口值:

0 成功完成。

>0 发生错误。

示例

1. 输入下列命令:

printf ("]M\n",1213,43);

产生下列输出:

_1213_ _43

三次使用 Format 参数打印所有给定字符串。0(零)由 printf 命令提供以满足最后的 M 转换规格。

2. 输入下列命令

printf ("%c %c\n",78,79);

产生下列输出:

N_O

文件

/usr/bin/printf 包含 printf 命令。

c语言程序输出s是什么,C语言中printf格式化输出函数相关推荐

  1. c语言程序功能作用是什么,C语言中rewind函数的作用是什么?

    rewind函数的作用是:使文件位置指针重新返回文件的开始位置. C语言rewind函数 rewind函数是C语言程序中的库函数 功 能:将文件内部的位置指针重新指向一个流(数据流/文件)的开头 注意 ...

  2. c语言中输入格式带括号,C语言中printf()后的括号里面的怎么写,表示什么?...

    int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]typ ...

  3. c语言编程输出所有水仙花数,c语言中,如何输出所有的水仙花数

    满意答案 xlmzww123 2020.01.22 采纳率:42%    等级:9 已帮助:165人 水仙花数即三位的自幂数.所谓自幂数,就是指一个 n 位数 ( n≥3 ),其每位上的数字的 n 次 ...

  4. C语言程序中的精度问题,c语言中float精度问题

    3.1415926(10进制) == 11.00100100001111110110100110100010010110110000100101(2进制) == 1.10010010000111111 ...

  5. 利用c语言中printf输出图形

    c语言中利用printf输出图形 通过对c语言中printf的使用,我根据自己对*符号的排版利用dev c++编译出了一个菱形的图案.感受到了通过高级程序语言输出自己构建的内容的乐趣.在这个过程中,计 ...

  6. c语言输出的时候让字符占五位,C语言中printf的规范输出

    1.调用格式为  printf("", ); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%" ...

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

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

  8. c语言里的%p的作用,C语言中geiwei=m%10什么意思,求解!

    C语言中geiwei=m%10什么意思,求解!以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言中geiwei=m% ...

  9. c语言中 printf(quot;nquot;),关于C语言 printf(quot;%d\nquot;,printf(quot;%dquot;,printf(quot;%dquot;...

    luokaiwei19824级被浏览104次2013.10.11 检举 #include int main(){ int i=43; printf("%d\n",printf(&q ...

最新文章

  1. List常用方法总结 遍历集合的方法
  2. java 汉字 数字_java数字转汉字工具类详解
  3. Android NDK 使用自己的共享库(Import Module)
  4. 有没有测试水泥稳定性的软件,水泥稳定碎石土7天无侧限抗压强度制件(参考模板)...
  5. 利用原生js 如何实现div移动?
  6. BAdI to control ALV grid display
  7. sizeof(string)
  8. SQLAlchemy基本使用(Flask中)
  9. 函数的重载、覆盖和隐藏
  10. 06.SpringBoot的webjars和静态资源映射
  11. Unity飞机大战源码下载
  12. 基于51单片机GPS的导航系统设计(1)---(设计思路)
  13. 小米adb驱动_腾讯口袋阅、小米多看等电子阅读器如何安装第三方软件!
  14. 【华为二面】2020/3/25_华为第二次技术面试_45分钟
  15. linux 查看CPU使用率
  16. U盘在别人电脑上正常显示,插在自己电脑读不出来(只显示CD驱动器)
  17. 希捷 sshd 微型计算机,希捷1TB SSHD拆解/核心技术分析_硬盘_内存硬盘-中关村在线...
  18. 翻译Deep Learning and the Game of Go(10)第八章:部署你的AI
  19. ORACLE序列的作用
  20. 中职计算机英语教学计划,中职英语基础模块1教学计划.docx

热门文章

  1. 移动应用广告之商业变现的实现策略
  2. python笔记-2020/09/01下午-字符串练习(2)
  3. ⊱人永远需要两种能力:好好说话和情绪稳定
  4. Mini 车迷的「终极乐趣方程式」快看看地表最强乐趣小车JCW
  5. Python 加密文件与解密文件
  6. idea maven添加子moudle父pom被覆盖
  7. 【Linux】Linux 常用基操和 Java 环境的部署
  8. javascript中caller与callee的作用以及用法
  9. 【虚拟机/UBunTu】VMBox下UBunTu扩容磁盘
  10. 解决ubuntu20.04播放b站视频,提示“May need to install the required video codecs”问题