在C语言中的格式说明符
在C语言中,格式说明符用于输入和输出。使用这个概念,编译器可以在使用scanf()函数进行输入和使用printf()函数进行输出时,理解变量中的数据类型是什么。以下是一些格式说明符的列表。
格式说明符 | 类型 |
---|---|
%c | 字符 |
%d | 有符号整数 |
%e 或 %E | 浮点数的科学计数法表示 |
%f | 浮点数 |
%g 或 %G | 与%e或%E类似 |
%hi | 有符号整数(短整型) |
%hu | 无符号整数(短整型) |
%i | 无符号整数 |
%l 或 %ld 或 %li | 长整型 |
%lf | 双精度浮点数 |
%Lf | 长双精度浮点数 |
%lu | 无符号整数或无符号长整型 |
%lli 或 %lld | 长长整型 |
%llu | 无符号长长整型 |
%o | 八进制表示 |
%p | 指针 |
%s | 字符串 |
%u | 无符号整数 |
%x 或 %X | 十六进制表示 |
%n | 不打印任何内容 |
%% | 打印%字符 |
这些是基本的格式说明符。我们可以使用格式说明符添加其他部分。具体如下:
- 减号(-)表示左对齐
-
%后面的数字指定最小字段宽度。如果字符串长度小于宽度,则会用空格填充。
-
句点(.)用于分隔字段宽度和精度。
示例
#include <stdio.h>
main() {
char ch = 'B';
printf("%c
", ch); //printing character data
//print decimal or integer data with d and i
int x = 45, y = 90;
printf("%d
", x);
printf("%i
", y);
float f = 12.67;
printf("%f
", f); //print float value
printf("%e
", f); //print in scientific notation
int a = 67;
printf("%o
", a); //print in octal format
printf("%x
", a); //print in hex format
char str[] = "Hello World";
printf("%s
", str);
printf("%20s
", str); //shift to the right 20 characters including the string
printf("%-20s
", str); //left align
printf("%20.5s
", str); //shift to the right 20 characters including the string, and print string up to 5 character
printf("%-20.5s
", str); //left align and print string up to 5 character
}
输出
B
45
90
12.670000
1.267000e+001
103
43
Hello World
Hello World
Hello World
Hello
Hello
我们也可以使用相同的方式在 scanf() 函数中使用这些格式说明符。因此,我们可以像上面打印的那样从 scanf() 中获取输入。