迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C语言 >

C 中的格式说明符

作者:迹忆客 最近更新:2023/05/05 浏览次数:

本文介绍C语言中printf函数的使用,以及该函数中使用的格式说明符。 本文将详细讨论格式说明符的语法以及它们如何用于不同的数据类型。

让我们先看看 printf 函数的语法。


C 中 printf() 函数中的格式说明符

printf() 函数的语法是:

int printf ( const char * format, ... );

此函数将存储在标准输出控制台上的格式变量中的字符串写入。 如果此字符串包含格式说明符,即一些以 % 符号开头的子字符串指定一些变量,则这些将替换为字符串后指定的值。

参数:

  • format

要写入输出的文本存储在此 C 字符串中。 它可以选择包含嵌入式格式说明符,替换为下一个额外参数中提供的值并根据需要格式化。

格式说明符遵循以下模式:

%[flags][width][.precision][length]specifier

方括号 [] 表示这些说明符是可选的。 例如,printf("%lu",4294967295) 表示以无符号长格式打印 4294967295。

这里,l 是 long int 的长度说明符,u 是无符号数的说明符。 其余的可选参数将被忽略。

该模式末尾的说明符是最重要的部分,因为它定义了要打印的数据类型。 下表显示了不同说明符的列表及其说明:

说明符 说明
d 或者 i 有符号十进制整数
u 无符号十进制整数
o 无符号八进制数
x 无符号十六进制数
X 大写的无符号十六进制
f 小写十进制浮点数
F 大写十进制浮点数
c 字符
s 字符串
a 小写的十六进制浮点数
A 大写的十六进制浮点数
p 指针地址

说明符之前的其余子说明符都是可选的,但它们的用途定义如下。

标志:

标志 说明
- 用于左对齐字段。
+ 强行在正数前放置一个加号
# 用于八进制和十六进制说明符 (o,x,X),分别放置 0、0x 或 0X。
0 将 0 添加到值的左侧。

宽度:

width 描述
(number) 指定要打印的最少字符数。
* 宽度作为要格式化的参数之前的附加整数值参数提供,而不是在格式字符串中提供。

精度:

精度 描述
.number 指定要打印的最小位数。 如果数字的位数较少,则在左侧用零填充。
.* 精度作为要格式化的参数之前的附加整数值参数提供,而不是在格式字符串中提供。

长度:

长度 描述
hh 指定 printf 假设一个 int 大小的整数参数从整数类型的 char 提升。
h 指定 printf 假设一个 int 大小的整数参数从整数类型的缩写提升而来。
l 指定 printf 假定整数类型的长整型参数。 对于浮点类型,这将被忽略。 使用可变参数时,浮点参数会自动提升为双精度。
ll 指定 printf 假定整数类型的长整数参数。
L 指定 printf 假定浮点类型的 long double 参数。
z 对于整数类型,指定 printf 假定一个 size_t 大小的整数参数。
j 对于整数类型,指定 printf 假定一个 intmax_t 大小的整数参数。
t 对于整数类型,指定 printf 假定一个 ptrdiff_t 大小的整数参数。
  • ... 该函数可能需要一系列附加参数,每个参数都包含一个值以替换格式字符串中的格式说明符,具体取决于格式字符串(或指向存储位置的指针,对于 n)。

这些参数的数量至少应等于格式说明符中指示的值的数量。 该函数忽略任何其他参数。

返回值:

如果操作成功,则返回写入的字符总数。 设置错误指示(ferror),如果发生写入错误则返回一个负整数。

Errno 设置为 EILSEQ,如果在写入宽字符时出现多字节字符编码错误,则给出一个负整数。

例子:

#include <stdio.h>

int main()
{
   printf ("Some Character values: %c %c \n", 'b', 66);
   printf ("Some Decimal Value: %d %ld\n", 1234, 670000L);
   printf ("Numbers preceeding with blank spaces: %10d \n", 1234);
   printf ("Numbers preceeding with zeros: %010d \n", 1235);
   printf ("Different number systems: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
   return 0;
}

输出:

Some Character values: b B
Some Decimal Value: 1234 670000
Numbers preceeding with blank spaces:       1234
Numbers preceeding with zeros: 0000001235
Different number systems: 100 64 144 0x64 0144

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中使用 typedef enum

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。

C 语言中的静态变量

发布时间:2023/05/07 浏览次数:151 分类:C语言

本文介绍了如何在 C 语言中使用静态变量。在 C 语言中使用 static 变量在函数调用之间保存变量值

C 语言中生成随机数

发布时间:2023/05/07 浏览次数:64 分类:C语言

本文演示了如何在 C 语言中生成随机数。使用 rand 和 srand 函数在 C 语言中生成随机数

C 语言中的 i++ 与++i

发布时间:2023/05/07 浏览次数:83 分类:C语言

本文演示了如何在 C 语言中使用前缀增量与后缀增量运算符。C 语言中++i 和 i++ 记号的主要区别

C 语言中获取当前工作目录

发布时间:2023/05/07 浏览次数:182 分类:C语言

本文演示了如何在 C 语言中获取当前工作目录。使用 getcwd 函数获取当前工作目录的方法

C 语言中的位掩码

发布时间:2023/05/07 浏览次数:126 分类:C语言

本文介绍了如何在 C 语言中使用位掩码。使用 struct 关键字在 C 语言中定义位掩码数据

C 语言中的排序函数

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文演示了如何在 C 语言中使用标准库排序函数。使用 qsort 函数对 C 语言中的整数数组进行排序

C 语言中的 extern 关键字

发布时间:2023/05/07 浏览次数:114 分类:C语言

本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量

C 语言中的 #ifndef

发布时间:2023/05/07 浏览次数:186 分类:C语言

本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便