Loading... # 长度指示符 在前面,我们已经认识到了占位符的作用及使用方法 我们知道在 `printf函数`中可以将比int数据类型低级的数据类型进行类型提升为int类型。我们可以从字节的角度去看char、short、int的字节分别为1、2、4,而printf能将低级类型提升为int类型,用%d表示,则%d取的是 `sizeof(int)`字节二进制数据(4字节),所以char、short、int、long都可以使用%d占位符 ```c #include <stdio.h> int main(){ long l = 2147483647; long long ll = 9223372036854775807; printf("%d\n",l); //%d取的为4字节内的数据类型,l变量符合条件,可以正常打印 printf("%d\n",ll); //long long数据类型为8字节,超出了%d取得4字节,故会错误输出 return 0; } ``` 这时候我们想要加宽或缩短转换操作所获取到的二进制数据长度,就需要使用 `长度指示符` 长度指示符写在占位符前,如 `%ld`中的 `l`,长度指示符用 `l、ll、h、hh`表示,并不是单独的一个符号,是与占位符一体的写在 `%`后面 | 占位符号 | 二进制字节长度 | | :----------------------: | :--------------------------: | | %ld、%li | sizeof(long) | | %lld、%lli | sizeof(long long) | | %lu、%lo、%lx、%lX | sizeof(unsigned long) | | %llu、%llo、%llx、%llX | sizeof(unsigned long long) | | %hd、%hi | sizeof(short) | | %hhd、%hhi | sizeof(char) | | %hu、%ho、%hx、%hX | sizeof(unsigned short) | | %hhu、%hho、%hhx、%hhX | sizeof(unsigned char) | # 精度 直接上代码示例,这个很容易明白 ```c #inculde <stdio.h> int main(){ float f1 = 3.1415926; int n1 = 123; printf("%.6d\n %.6f\n %.0f\n %.4f\n",n1,f1.f1,f1); return 0; /*输出结果为 000123 3.141593 3 3.1416 } ``` # 最小字段宽度 十进制表示的最小字段宽度 指定输出的字符最小为多少个字符,若不足将会以空格补齐到指定的最小宽度 直接看示例 ```c #include <stdio.h> int main(){ int n = 1234; double df = 1234.56789; printf("%2d",n);//最小宽度2,变量n有4位,故不处理 printf("%6d",n) } ``` **待补充....** Last modification:November 19, 2022 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 7 如果觉得我的文章对你有用,请随意赞赏