C语言基础01——格式说明

C语言基础01——格式说明

*** 说明符决定数据的显示方式而不是决定数据的存储方式。数据存储都是以ASCII码存储的。

1、 %d符号用于指示一行中的什么位置打印整数,%d被称为格式说明符,每个%d对应打印项目中的一个int值。

(这个值可以是 int变量、int常量或者其他的值为int类型的表达式)。

2、 %o——八进制显示整数。

3、 %x——十六进制显示整数。

4、 如果想显示C语言前缀,使用说明符%#o、%#x和%#X分别生成前缀0、0x和0X前缀。

5、 打印unsigned int数字,使用%u。

6、 打印long数值,使用%ld格式说明符。(如果系统的int和long类型具有同样的长度,使用%d就可以打印long数值)

但是这会给程序移植到其他系统(这两种数据类型的长度不一样的系统)带来麻烦。故使用%ld打印long数值。

7、 %lx表示以十六进制格式打印长整数,

%lo表示以八进制格式打印长整数。(注意:尽管C中常量后缀可以使用大写和小写,但格式说明符只能使用小写字母。)

8、 可以对short类型使用h前缀,

%hd表示以十进制显示short整数,

(无论使用%hd还是%d,short类型变量最终的显示结果相同,

因为在传递函数参数时C自动将short类型的值转化为int类型。

int类型被认为是计算机处理起来最方便有效的整数类型。)

%ho表示以八进制显示short整数。

9、 h和l前缀都可以同u结合使用以表示无符号类型。

%lu表示打印unsigned long类型

%hu表示打印unsigned short类型

10、 支持long long类型的系统使用%lld和%llu分别表示有符号类型和无符号类型。

11、 char类型用于存储字母和标点符号之类的字符。但在技术实现上char却是整数类型。

为了处理字符,计算机使用一种数字编码,用特定的整数表示特定的字符。美国常用的是ASCII码。

12、%c说明符表示打印一个字符。(字符变量被存储为1字节长 [ 8位 ] 的整数值)

char类型的有无符号由编译器决定。有符号(-128—127)。无符号(0—255)。

编译器手册会指明char的符号类型。或者limits.h头文件查。

13、%f格式说明符表示打印十进制计数法的float和double数字。

14、%e打印指数计数法的数字。(如果系统支持C99的十六进制格式浮点数,还可以使用 a 或 A 代替 e 或 E。)

15、打印long double类型需要%Lf、%Le和%La说明符。

(注意 float 和 double 类型的输出都使用%f、%e 或 %a说明符,

这是由于当它们向那些未在原型中显示说明参数类型的函数(如printf() )传递参数时,

C自动将float类型的参数转换成double类型。)

%5.2f ——字段宽度为5个字符,小数点后有两个数字。

#include

#define TEST 123

int main (void)

{

printf("*%d*\n", TEST);

printf("*%2d*\n", TEST);

printf("*%10d*\n", TEST);

printf("*%-10d*\n", TEST);

return 0;

}

运行结果为:

第一个转换说明是不带任何修饰符的%d.它生成了一个与要打印的整数宽度相同的字段。这是默认选项:也就是说,如果没有进一步给出命令,这就是打印的结果。

第二个转换说明是%2d。它指示应该产生宽度为2的字段,但是由于该整数有3位数字,所以字段自动扩展以适应数字的长度。

第三个转换说明是%10d。这将产生一个有10个空格那么宽的字段,于是在星号之间有7个空白和3个数字,并且数字位于整个字段右端。

最后一个说明是%-10d。它也产生宽10个空格的字段,标志“-”把数字放在左端。

相关推荐

360手机卫士抢红包专版

360手机卫士抢红包专版

📅 07-26 👁️ 9056
将图稿贴在 3D 对象上

将图稿贴在 3D 对象上

📅 10-14 👁️ 5923