用C格式说明符

格式说明符在C中用于输入和输出目的。使用此概念,编译器可以理解在使用scanf()函数进行输入和使用printf()函数进行打印期间,变量中包含什么类型的数据。这是格式说明符的列表。

格式说明符类型
%C字符
%d有符号整数
%e或%E浮点数的科学表示法
%F浮点值
%g或%G与%e或%E相似
%hi有符号整数(短整数)
%hu无符号整数(短)
%一世无符号整数
%l或%ld或%li
%如果
%如果长双
%鲁Unsigned int或unsigned long
%lli或%lld长久
%llu无符号长久
%o八进制表示
%p指针
%s
%u无符号整数
%x或%X十六进制表示
%n什么都不打印
%%打印%字符

这些是基本的格式说明符。我们可以使用格式说明符添加其他部分。这些如下-

  • 减号(-)表示左对齐

  • %之后的数字指定最小字段宽度。如果字符串小于宽度,则将用空格填充

  • 句点(。)用于分隔字段宽度和精度

示例

#include <stdio.h>
main() {
   char ch = 'B';
   printf("%c\n", ch); //printing character data
   //使用d和i打印十进制或整数数据
   int x = 45, y = 90;
   printf("%d\n", x);
   printf("%i\n", y);
   float f = 12.67;
   printf("%f\n", f); //print float value
   printf("%e\n", f); //print in scientific notation
   int a = 67;
   printf("%o\n", a); //print in octal format
   printf("%x\n", a); //print in hex format
   char str[] = "你好世界";
   printf("%s\n", str);
   printf("%20s\n", str); //shift to the right 20 characters including the string
   printf("%-20s\n", str); //left align
   printf("%20.5s\n", str); //shift to the right 20 characters including the string, and print string up to 5 character
   printf("%-20.5s\n", str); //left align and print string up to 5 character
}

输出结果

B
45
90
12.670000
1.267000e+001
103
43
你好世界
你好世界
你好世界
Hello
Hello

我们也可以scanf()以相同的方式将这些格式说明符用于函数。因此,我们可以scanf()像上面一样从输入中获取输入内容。