比如: printf("%lx", 65535)/* 将65535输出为十六进制格式 */
输入参数"%lx"就是格式控制串,其中的%是格式控制符, l表示数据为长整型,x表示输出十六进制
执行该函数输出的内容为: ffff
更详细的格式控制符说明如下:
语法: %[-][width][.prec]type
其中中括号中的内容是可选项,每项的含义分别如下:
-: 表示输出时按左对齐的格式,否则为右对齐。
width:输出的总宽度(包括后面的prec),如果给的宽度不够,则会自动增加宽度,而不会截断。
prec: 用于控制浮点数的输出小数位数
type: 类型控制符,具体如下:
d或i: 有符号整数
u: 无符号整数
x: 用十六进制表示整数
o: 用八进制表示整数
f: 浮点数
g: 用科学计数法表示浮点数
s: 字符串
c: 字符
其中 d、i、u、x、f、g前面可以加上字母l或ll表示long或者long long,
比如 "%ld"可以输出32位整数,"%lld"可以输出64位整数。
以上内容仅供参考,因为不同的编译器可能会根据需要定义自己的控制符。
因为定义了unsigned long long型的定义,所以输入输出都需要%llu的格式修饰比如定义unsigned long int,就要用%lu了
unsigned int用%u
long long int用%lld
long int用%ld
int用%d
这个是一一对应的,用不对就会产生输入、输出方面的错误。
那我问你LL为什么要有逗号?
你知不知道LL是什么?
它是一个长度修饰符.
表示它前面跟的数字是长长整型. 因为如果你写的数字大于了整型的长度, 这样就会报错, 加上就不会.