以下是 scanf 函数中各种数据类型对应的格式说明符匹配:
整型: %d 用于 int 类型; %hd 用于 short 类型; %ld 用于 long 类型; %lld 用于 long long 类型。
浮点型: %f 用于 float 类型; %lf 用于 double 类型; %Lf 用于 long double 类型。
字符型: %c 用于 char 类型。
字符串型: %s 用于 char 数组(字符串)。
八进制和十六进制整型: %o 用于以八进制形式输入 int 等整型数据; %x 或 %X 用于以十六进制形式输入 int 等整型数据, %lx 或 %lX 用于 long 类型的十六进制输入, %llx 或 %llX 用于 long long 类型的十六进制输入。
指针类型:虽然 scanf 本身不直接用于读取指针值,但可以读取地址值并赋值给指针变量,通常使用 %p 来输入指针的地址值,例如 scanf(“%p”, &ptr); ,这里 ptr 是一个指针变量。
此外,对于 unsigned 类型的整型,对应的格式说明符通常是在有符号整型格式说明符前加上 u ,如 %u 用于 unsigned int , %hu 用于 unsigned short , %lu 用于 unsigned long , %llu 用于 unsigned long long 。