占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号,广泛用于计算机中各类文档的编辑。
格式占位符(%)是在C/C++语言中格式输入函数,如 scanf、printf 等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。
一、整数类型
-
%d
和%i
:用于输出有符号十进制整数。通常情况下,二者可以互换使用。在输入时,它们都可以接受十进制整数的输入,同时%i
还可以接受八进制(以 0 开头)和十六进制(以 0x 或 0X 开头)整数的输入。- 例如:
int num = 10; printf("%d", num);
会输出10
。 - 对于布尔类型,在 C 语言中通常用 0 和 1 表示,所以可以用
%d
来输出,但这并不是标准的布尔类型输出方式。
- 例如:
-
%ld
:用于输出有符号长整型(long int)。长整型通常在不同的系统上有不同的长度,但一般来说比普通整型更长,可以存储更大范围的整数。- 例如:
long int long_num = 1234567890; printf("%ld", long_num);
。
- 例如:
-
%lld
:用于输出有符号长长整型(long long int)。在一些需要处理非常大的整数的情况下使用。- 例如:
long long int very_long_num = 9876543210987654321; printf("%lld", very_long_num);
。
- 例如:
二、浮点类型
-
%f
:用于输出单精度浮点数(float)。以小数形式显示浮点数。- 例如:
float float_num = 3.14f; printf("%f", float_num);
会输出类似3.140000
的结果。
- 例如:
-
%lf
:用于输出双精度浮点数(double)。以小数形式显示浮点数,精度通常比单精度浮点数更高。- 例如:
double double_num = 3.141592653589793; printf("%lf", double_num);
。
- 例如:
三、字符串和字符类型
-
%s
:用于输出字符串。字符串是以空字符'\0'
结尾的字符数组。- 例如:
char str[] = "Hello, world!"; printf("%s", str);
会输出Hello, world!
。
- 例如:
-
%c
:用于输出单个字符。- 例如:
char ch = 'A'; printf("%c", ch);
会输出A
。
- 例如:
四、指针类型
%p
:用于输出指针的值,通常以十六进制形式显示。- 例如:
int* ptr = # printf("%p", ptr);
会输出指针的地址。
- 例如:
五、其他类型
-
%fL
:长log
的含义不太明确,不太清楚具体的用途,可能是特定环境下的特殊格式说明符。 -
%e
:用于以科学计数法形式输出浮点数。例如,输出1.23e+02
表示 1.23×10²。 -
%g
:根据数值的大小自动选择%f
或%e
的格式来输出浮点数,以更紧凑的方式显示。 -
%a
和%A
:仅在 C99 标准中有效,用于以十六进制指数形式输出浮点数。 -
%o
:用于输出八进制整数。 -
%x
和%X
:用于输出十六进制整数,%x
以小写字母形式输出,%X
以大写字母形式输出。 -
%u
:用于输出无符号十进制整数。 -
%n
:用于记录到目前为止已输出的字符个数。 -
%[]
:用于扫描字符集合,根据指定的字符集合进行输入匹配。 -
%%
:用于输出%
符号本身。
案例:
int main()
{
int a, b, c;
char s;
float f;
printf("请输入三个整数,用逗号分隔:");
scanf_s("%d,%d,%d", &a, &b, &c);
printf( "a=%d,b=%d,c=%d \r\n", a,b,c);
printf("请输入一个字符:");
scanf_s(" %c", &s, 1);
printf("s=%c \r\n", s);
printf("请输入一个浮点数:");
scanf_s("%f", &f);
printf("f=%f \r\n", f);
printf("%d\n", a);
printf("%d\n", b);
printf("%d\n", c);
printf("%f\n", f);
// 正确输出字符
printf("%c\n", s);
// 暂停退出
system("pause");
return 0;
}