格式控制符

发布时间 2023-09-16 14:38:34作者: ⭐⭐-fighting⭐⭐

格式控制符是用于指定 printfscanffprintffscanf 等 C 标准库函数中的格式化输入和输出的特殊字符序列。这些字符序列定义了如何解释要输出或输入的数据。以下是一些常用的格式控制符:

  • %d: 用于输出或输入十进制整数。

  • %f: 用于输出或输入浮点数。

  • %c: 用于输出或输入单个字符。

  • %s: 用于输出或输入字符串。

  • %x: 用于输出或输入十六进制整数。

  • %o: 用于输出或输入八进制整数。

  • %u: 用于输出或输入无符号十进制整数。

  • %%: 用于输出一个百分号 %

  • %e, %E: 用于以指数形式输出浮点数。

  • %g, %G: 用于自动选择 %f%e(或 %E)输出浮点数。

  • %p: 用于输出指针地址。

  • %n: 用于将字符数赋给参数。

这些格式控制符可以用于 printfscanffprintffscanf 等函数中,用于格式化输出到屏幕或文件,或者从输入中解析数据。例如:

int num = 42;
printf("The number is: %d\n", num);

char str[] = "Hello, world!";
printf("The string is: %s\n", str);

在这个示例中,%d%s 就是格式控制符,分别用于输出整数和字符串。格式控制符可以和其他字符一起使用,用于更复杂的格式化输出或输入。

当使用 C 标准库函数进行格式化输入和输出时,格式控制符允许您指定输出的格式,以及输入时期望接收的格式。以下是一些常用的格式控制符和其详细解释:

  • %d: 以十进制形式输出整数。对应的参数应为 int 类型。

  • %ld: 以长整型十进制形式输出整数。对应的参数应为 long int 类型。

  • %u: 以无符号十进制形式输出整数。对应的参数应为 unsigned int 类型。

  • %lu: 以无符号长整型十进制形式输出整数。对应的参数应为 unsigned long int 类型。

  • %x, %X: 以十六进制形式输出整数,小写或大写字母。对应的参数应为 unsigned int 类型。

  • %o: 以八进制形式输出整数。对应的参数应为 unsigned int 类型。

  • %c: 输出一个字符。对应的参数应为 char 类型。

  • %s: 输出一个字符串。对应的参数应为 char* 类型,指向要输出的字符串。

  • %f: 以十进制形式输出浮点数。对应的参数应为 double 类型。

  • %e, %E: 以指数形式输出浮点数,小写或大写字母。对应的参数应为 double 类型。

  • %g, %G: 自动选择 %f%e(或 %E)输出浮点数。对应的参数应为 double 类型。

  • %p: 输出一个指针地址。对应的参数应为指针类型。

  • %%: 输出一个百分号 %

  • %n: 不输出任何字符,但会将已打印字符的数目赋值给参数。对应的参数应为指向 int 类型的指针。

这些格式控制符可以与其他修饰符一起使用,例如:

  • %5d: 输出宽度为 5 的十进制整数。
  • %10.2f: 输出宽度为 10,保留两位小数的浮点数。

这些控制符可以根据需要进行组合,以满足输出的格式要求。例如,%04d 可以用于在输出整数时将不足宽度的位置用零填充。