《C语言编程初学者指南》一2.5 使用转换修饰符
本节书摘来自异步社区《C语言编程初学者指南》一书中的第2章,第2.5节,作者【美】Keith Davenport(达文波特) , M1ichael Vine(维恩),更多章节内容可以访问云栖社区“异步社区”公众号查看
2.5 使用转换修饰符由于信息是以二进制数据的形式存储在计算机内存中的,并且一系列的1和0读起来并不是特别有趣,作为C程序员,你必须特意告诉printf()这样的输入或输出函数,如何以一种对人类更加友好的形式把数据显示为信息。可以使用叫做转换修饰符(conversion specifier)的字符组合来完成这一貌似困难的任务。
转换修饰符由两个字符组成:第1个字符是一个百分号(%),第2个字符是一个特殊字符,告诉程序如何转换数据。表2.3描述了针对本章所讨论的数据类型最常使用的转换修饰符。
![d4419ba16883e9da151f204137bf319599966d9c](https://yqfile.alicdn.com/d4419ba16883e9da151f204137bf319599966d9c.png)
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.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()的双引号之中的文本,是给可显示的文本、转换修饰符和转义序列保留的。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 实现数据结构与算法需要掌握的C语言
- Unix和Linux下C语言学习指南
- 用C语言实现中文到unicode码的转换
- 用C语言实现中文到unicode码的转换
- C语言指针转换为intptr_t类型
- C语言指针转换为intptr_t类型
- 12个有趣的C语言面试题及答案
- C语言/C++基础之汉诺塔的遐想
- ZZNUOJ_C语言1074:百钱买百鸡(完整代码)
- ZZNUOJ算法题目录(C语言)
- ZZNUOJ_用C语言编写程序实现1141:进制转换(附完整源码)
- ZZNUOJ_用C语言编写程序实现1201:众数问题(附完整源码)
- ZZNUOJ_用C语言编写程序实现1718:大小写转换(附完整源码)
- 【C语言】(指针强化)指针也是一种数据类型
- 【C语言】开启一个线程
- 练习 1-3 修改温度转换程序,使之能在转换表的顶部打印一个标题。// C语言
- 练习 1-4 编写一个程序打印摄氏温度转换为相应华氏温度的转换表。// C语言
- 练习 1-5 修改温度转换程序,要求以逆序(即按照从300度到0度的顺序)打印温度转换表。// C语言
- C语言学习笔记--动态库和静态库的使用
- C语言---整型字符串转换
- C语言 windows下Ansi和UTF-8编码格式的转换
- C语言入门之typedef