这几个都是C语言格式化输入输出时使用的格式符号。其中%U为误写,实际为%u。
格式化输出函数包括printf, fprintf, sprintf等等。
格式化输入函数包括scanf, fscanf, sscanf等等。
这类函数在输入输出的时候都有一个参数为格式化字符串(format_str), 里面介绍了输入输出字符串的格式,当需要输入输出变量值时,就需要用对应的格式化字符来替代。
题目中提到的三种格式分别对应:
%ld对应long型,即长整型。
%d对应int型,即整型。
%u对应unsigned int型,即无符号整型。
除此以外,还有如下常见的类型。
%hd对应short型,即短整型。
%hu对应unsigned short型,即无符号短整型。
%f对应float型,即单精度浮点型。
%lf对应double型,即双精度浮点型。
%c对应char型,即字符型。
%s对应char *型,即字符指针/字符数组(均可称为字符串)。
%x对应int型,不过是以16进制输入输出。
%lx对应long型,同样是16进制形式。
以下是一个简单的例子:
#include <stdio.h>int main()
{
int i
long l
unsigned int u//定义三个不同类型的变量。
scanf("%d%ld%u",&i,&l,&u)//格式化输入三种变量,每个对应自己的类型。
printf("i = %d\n", i)
printf("l = %ld\n", l)
printf("u = %u\n", u)//分行格式化输出三个变量的值。
return 0
}
如果输入1 2 3
将输出
i = 1l = 2
u = 3
%ld,%d,%u都是格式说明符中的类型。它的作用是将输入或者输出的数据按照格式说明符指定的格式进行输入或者输出。
(1)%ld表示数据按十进制有符号长型整数输入或输出。
(2)%d表示数据按十进制有符号整型数输入或输出。
(3)%u表示数据按十进制无符号整型数输入或输出。
格式说明符由%和格式字符组成。在一个格式控制字符串中可以有多个格式说明符,每一组格式说明符都是以%开始,以一个格式字符作为结束。具体类型和所代表含义如下图:
扩展资料:
当格式说明符限制了输入或输出的数据类型时,要与数据起始定义数据类型一一对应,否则会引起输入或输出错误。下面介绍一些基本的数据定义类型。
(1)void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)
(2)char:字符型类型数据,属于整型数据的一种。(K&R时期引入)
(3)int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)
(4)float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
(5)double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
(6)_Bool:布尔型(C99标准新增)
(7)_Complex:复数的基本类型(C99标准新增)
(8)_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数(C99标准新增)
(9)_Generic:提供重载的接口入口(C11标准新增)
参考资料:c语言_百度百科