《C语言编程初学者指南》一2.5 使用转换修饰符

  1. 云栖社区>
  2. 博客>
  3. 正文

《C语言编程初学者指南》一2.5 使用转换修饰符

异步社区 2017-05-02 10:50:00 浏览1411
展开阅读全文

本节书摘来自异步社区《C语言编程初学者指南》一书中的第2章,第2.5节,作者【美】Keith Davenport(达文波特) , M1ichael Vine(维恩),更多章节内容可以访问云栖社区“异步社区”公众号查看

2.5 使用转换修饰符

由于信息是以二进制数据的形式存储在计算机内存中的,并且一系列的1和0读起来并不是特别有趣,作为C程序员,你必须特意告诉printf()这样的输入或输出函数,如何以一种对人类更加友好的形式把数据显示为信息。可以使用叫做转换修饰符(conversion specifier)的字符组合来完成这一貌似困难的任务。

转换修饰符由两个字符组成:第1个字符是一个百分号(%),第2个字符是一个特殊字符,告诉程序如何转换数据。表2.3描述了针对本章所讨论的数据类型最常使用的转换修饰符。


d4419ba16883e9da151f204137bf319599966d9c

2.5.1 用printf()显示整数数据类型

%d转化修饰符和一条printf()语句一起使用,来显示整数数据类型:

printf("%d", 55);

上面的语句会打印出如下的文本:

55

也可以使用%d转换修饰符来显示声明为整数数据类型的一个变量的内容,如下所示:

int operand1;
operand1 = 29;
printf("The value of operand1 is %d", operand1);

在上面的语句中,我们声明了一个新的、名为operand1的整数变量。接下来,我们将数字29赋值给这个新创建的变量,并且使用printf()函数和转换修饰符%d来显示其内容。

要使用printf()函数显示的每一个变量,都必须放在圆括号中并且用逗号(,)隔开。

2.5.2 用printf()显示浮点数据类型

要显示浮点数值,像下面这样使用%f转换修饰符。

printf("%f", 55.55);

如下是%f转换修饰符的另一个例子,它打印出浮点变量的内容:

float result;
result = 3.123456;
printf("The value of result is %f", result);

尽管%f转换修饰符能够显示浮点数,但它还不能够按照正确的或想要的精度来显示浮点数。如下的printf()函数解决了精度的问题:

printf("%f", 55.55);

这个printf()示例以小数点后面6位的精度来输出一个浮点数,如下所示:

55.550000

要创建带有精度的浮点数,在转换修饰符的%符号和f字符之间使用不同的数字方案,来调整转换修饰符:

printf("%.1f", 3.123456); 
printf("\n%.2f", 3.123456); 
printf("\n%.3f", 3.123456); 
printf("\n%.4f", 3.123456); 
printf("\n%.5f", 3.123456); 
printf("\n%.6f", 3.123456);

以上代码会产生如下的输出:

3.1
3.12
3.123
3.1234
3.12345
3.123456

注意,我们在上面的每一条打印语句的前面(除了第1行代码之外)都添加了一个n转义序列。没有这个换行转义序列的话,每条语句的输出都将会在同一行,这会使得输出很难阅读。

2.5.3 用printf()显示字符数据类型

使用%c转换修饰符,可以很容易地显示字符:

printf("%c", 'M');

这条语句的输出只是一个单个的字母M。和其他的转换修饰符一样,我们可以使用%c转换修饰符和一个printf()函数来输出一个字符类型的变量的内容,如下所示:

char firstInitial;
firstInitial = 'S';
printf("The value of firstInitial is %c", firstInitial);

可以在单个的printf()函数中,使用多个转换修饰符:

char firstInitial, middleInitial, lastInitial;
firstInitial = 'M'; 
middleInitial = 'A'; 
lastInitial = 'V';
printf("My Initials are  %c.%c.%c.", firstInitial, middleInitial, lastInitial);

上面的程序语句的输出如下所示:

My Initials are M.A.V.

注意,在下面的语句中,要用printf()函数显示的每一个变量,都放在双引号之外,并且用一个逗号隔开:

printf("My Initials are %c.%c.%c.", firstInitial, middleInitial, lastInitial);
printf()的双引号之中的文本,是给可显示的文本、转换修饰符和转义序列保留的。

网友评论

登录后评论
0/500
评论
异步社区
+ 关注