C语言--之6--输入与输出--2.格式化输出(printf)

本文详细介绍了printf和sprintf函数的使用,包括格式字符串的构成、转换说明及其各种选项。这两个函数分别用于标准输出和字符串输出,能够按照指定格式将参数转换并打印或保存。转换说明中的宽度、精度和类型修饰符等概念被详细阐述,同时给出了实例展示不同转换说明下的输出效果。此外,还提到了这两个函数在处理参数和返回值方面的特点。
摘要由CSDN通过智能技术生成

输出函数 printf 将内部数值转换成字符的形式:

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

它在输出格式 format 的控制下,将其参数进行转换与格式化,并在标准输出设备上打印出来,它的返回值为打印的字符数。其中:

  • 省略号表示参数表中参数的数量和类型是可变的。
  • 省略号只能出现在参数表的尾部。
  • 参数表必须至少包括一个有名参数。

格式字符串包含两种类型的对象:普通字符转换说明。在输出时:

  • 普通字符将原样不动地复制到输出流中。
  • 转换说明并不直接输出到输出流中,而是用于控制 printf 中参数的转换和打印,每个转换说明都由一个百分号字符(即%)开始,并以一个转换字符结束。

在字符 %转换字符中间可能依次包含下列组成部分:

  • 负号,用于指定被转换的参数按照左对齐的形式输出。
  • ,用于指定最小字段宽度。转换后的参数将打印不小于最小字段宽度的字段。如果有必要,字段左边(如果使用左对齐的方式,则为右边)多余的字符位置用空格填充以保证最小字段宽。
  • 小数点,用于将字段宽度和精度分开。
  • ,用于指定精度,即指定字符串中要打印的最大字符数、浮点数小数点后的位数、整型最少输出的数字数目。
  • 字母 h 或 l,字母 h 表示将整数作为 short 类型打印,字母 l 表示将整数作为 long 类型打印。

下表列出了所有的转换字符,如果%后面的字符不是一个转换说明,则该行为是未定义的。
在这里插入图片描述
在转换说明中,宽度或精度可以用 星号 * 表示,这时,宽度或精度的值通过转换下一参数(必须为 int 类型)来计算。
例如,为了从字符串 s 中打印最多 max 个字符,可以使用下列语句:printf("%.*s", max, s);

在打印字符串 “hello, world” (12 个字符)时根据不同的转换说明产生的不同结果:
在这里插入图片描述
函数 sprintf 执行的转换和函数 printf 相同,但它将输出保存到一个字符串中:

int sprintf(char *string, char *format, arg1, arg2, ...);

sprintf 函数和 printf 函数一样,按照 format 格式格式化参数序列 arg1、arg2、…,但它将输出结果存放到 string 中,而不是输出到标准输出中。当然,string 必须足够大以存放输出结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值