在《C语言在屏幕上显示内容》一节中,我们使用 puts 来输出字符串。puts 是 output string 的缩写,只能用来输出字符串,不能输出整数、小数、字符等,我们需要用另外一个函数,那就是 printf。printf 比 puts 更加强大,不仅可以输出字符串,还可以输出整数、小数、单个字符等,并且输出格式也可以自己定义。

printf 是 print format 的缩写,意思是“格式化打印”。这里所谓的“打印”就是在屏幕上显示内容,与“输出”的含义相同,所以我们一般称 printf 是用来格式化输出的。我们先来打印一下公众号名称:

printf("C语言Plus");

这个语句可以在屏幕上显示“C语言Plus”,与puts("C语言Plus");的效果类似。

输出变量 abc 的值,还记得上节课说的int型变量吧!就是整数

int abc=666;printf("%d", abc);

这里就比较有趣了。先来看%d,d 是 decimal 的缩写,意思是十进制数,%d 表示以十进制整数的形式输出。输出什么呢?输出变量 abc 的值。%d 与 abc 是对应的,也就是说,会用 abc 的值来替换 %d。

再来看个复杂点的:

int abc=666;printf("The value of abc is %d !", abc);

会在屏幕上显示:The value of abc is 666 !你看,字符串 "The value of abc is %d !" 中的 %d 被替换成了 abc 的值,其他字符没有改变。这说明 %d 比较特殊,不会原样输出,会被替换成对应的变量的值。再来看:

int a=100;int b=200;int c=300;printf("a=%d, b=%d, c=%d", a, b, c);

会在屏幕上显示:a=100, b=200, c=300再次证明了 %d 与后面的变量是一一对应的,第一个 %d 对应第一个变量,第二个 %d 对应第二个变量……%d称为格式控制符,它指明了以何种形式输出数据。格式控制符均以%开头,后跟其他字符。%d 表示以十进制形式输出一个整数。除了 %d,printf 支持更多的格式控制,例如:

  • %c:输出一个字符。c 是 character 的简写。

  • %s:输出一个字符串。s 是 string 的简写。

  • %f:输出一个小数。f 是 float 的简写。

  • 特别注意的是,输出数据的时候一定要按对应格式输出,否则会出错,简单的测试下!

不按格式输出,代码能运行,但是输出的数据是完全看不懂啊!所以要小心哦!除了这些,printf 支持更加复杂和优美的输出格式,考虑到读者的基础暂时不够,我们在后面慢慢引入。我们把代码补充完整,体验一下:

#include

int main()

{

int n = 100;

char c = '@'; //字符用单引号包围,字符串用双引号包围

float money = 93.96;

printf("n=%d, c=%c, money=%f\n", n, c, money);

return 0;

}

输出结果:n=100, c=@, money=93.959999要点提示:1) \n是一个整体,组合在一起表示一个换行字符。换行符是 ASCII 编码中的一个控制字符,无法在键盘上直接输入,只能用这种特殊的方法表示,被称为转义字符,请大家暂时先记住\n的含义。

所谓换行,就是让文本从下一行的开头输出,相当于在编辑 Word 或者 TXT 文档时按下回车键。

puts 输出完成后会自动换行,而 printf 不会,要自己添加换行符,这是 puts 和 printf 在输出字符串时的一个区别。2) //后面的为注释。注释用来说明代码是什么意思,起到提示的作用,可以帮助我们理解代码。注释虽然也是代码的一部分,但是它并不会给程序带来任何影响,编译器在编译阶段会忽略注释的内容,或者说删除注释的内容。3) money 的输出值并不是 93.96,而是一个非常接近的值,这与小数本身的存储机制有关,这种机制导致很多小数不能被精确地表示,即使像 93.96 这种简单的小数也不行。

那么如果我不要输出那么多小数位该怎么办呢?比如说我只需要保留两位小数,看下面代码!加上0.2就是保留小数点后面两位

我们也可以不用变量,将数据直接输出:

#include

int main()

{

float money = 93.96;

printf("n=%d, c=%c, money=%f\n", 100, '@', money);

return 0;

}

输出结果与上面相同。在以后的编程中,我们会经常使用 printf,说它是C语言中使用频率最高的一个函数一点也不为过,每个C语言程序员都应该掌握 printf 的用法,这是最基本的技能。不过 printf 的用法比较灵活,也比较复杂,初学者知识储备不足,不能一下子掌握,目前大家只需要掌握最基本的用法,以后随着编程知识的学习,我们会逐步介绍更加高级的用法,最终让大家完全掌握 printf。

本节讲到的 puts、printf,以及后面要讲到的 fprintf、fputs 等与字符串输出有关的函数,都支持这种写法。

c++输出小数点后几位_2.1 怎么在屏幕上输出各种类型的数据相关推荐

  1. Java中double类型输出小数点后两位

    Java中double类型输出小数点后两位 思路 就是在输出的时候使用字符串格式即可. double testNum=1.123456789;System.out.println(String.for ...

  2. c++输出小数点后几位_Python格式化输出的精度和位数控制

    上一期小哥讲解了Python格式化输出的三种方式: 本期小哥讲解一下关于小数精度和字符串位数的控制: 1. 小数精度控制 Python中对于小数精度的控制的使用方法: # 定义变量a = 3.1415 ...

  3. c++输出小数点后几位_Python格式化输出:%s和format()用法比较

    1.python格式化输出历史起源 python2.5之前,我们使用的是老式格式化输出:%s.从python3.0开始起(python2.6同期发布),同时支持两个版本的格式化,多出来的一个新版本就是 ...

  4. C语言课程设计报告输出杨辉三角,C语言学习:在屏幕上输出杨辉三角

    杨辉三角的规律是:它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和. 代码如下: #include #include int main() { int i,j,k,arr[10][ ...

  5. mastercam9.1如何控制进给输出小数点后的位数

    我们用MC出来的程序中,进给率数值一般是小数点后一位数,常规加工中还好,没什么影响,但是在攻牙里面就不行了.比如我们要攻M4的牙,螺距是0.75,在三菱系统里面攻牙指令中F是直接给螺距的.而我们使用软 ...

  6. 解题报告——习题2-5 分数化小数(decimal) 输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。

    立志用尽量少的代码做高效的表达. 题目描述: 输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位. a,b ≤10^6 ,c≤100.输入包含多组数据,结束标记记为a = b = c = ...

  7. c++输出的值精确到小数点后5位_c/c++linux 2019最新阿里研发类面试题及答案分享...

    问题点总结: 1.1.1 问题:如何实现一个高效的单向链表逆序输出? 1.1.2 题目:已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位. 1.1 ...

  8. 课后习题3.2 设圆的半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用cin输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字。请编程序。

    课后习题3.2 设圆的半径r=1.5,圆柱高h=3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积.用cin输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字.请编程序. #inclu ...

  9. 请编写一个个人所税计算器,用户输入应发工资薪金所得、五险一金金额和个税免征额,输出应缴税款和实发工资,结果保留小数点后两位。当输入数字小于0或等于0时,输出“error”。‪

    题目 假设个人所得税税率表如下:‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬ ...

最新文章

  1. CentOS 6.3 64bit上测试ATS 5.3.0中的正则刷新插件regex_revalidate
  2. #大学#SQL基础学习笔记(02)
  3. 2018年黑龙江各口岸进口俄大豆80.3万吨 同比增长60.1%
  4. python自然语言处理书籍推荐-python自然语言处理
  5. 《图谋职场——最经济的图形沟通》 专题讲座圆满成功
  6. ir指令、立即数的作用_立即数的判断方法一
  7. 语言代码编程大赛简讯_精品干货:C语言的高效编程与代码优化
  8. 如何在用例之间传递值_如何从0搭建自己的自动化测试体系
  9. HashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别
  10. 天猫双11:1日到11日0点45分 382个品牌成交额超过1亿元
  11. linux 内核 发送数据类型,Linux内核数据类型及跨平台
  12. 在Extjs中对日期的处理,以及在后端数据在SQL语句的判断处理
  13. c#制作的简单的画图板
  14. vscode编写php好用吗,vscode可以编写php吗
  15. 237Echarts - 3D 柱状图(Image to Bar3D)
  16. java 图片识别_java实现图片文字识别的两种方法
  17. VMware 中Fedora系统连接网络问题!
  18. [JAVA]EXCEL工具推荐-MyExcel
  19. 3D NAND“大连造”
  20. CentOS7 分区合并

热门文章

  1. 1047. 删除字符串中的所有相邻重复项
  2. 基于tensorflow框架的神经网络结构处理mnist数据集
  3. gitlab备份与恢复操作整理
  4. go slice切片详解:定义、遍历、追加切片、切片拷贝
  5. hadoop 2.9.2 yarn配置公平调度器
  6. 解决phoenix中创建的表名及字段默认是大写的问题
  7. JavaFX给控件添加css样式
  8. SpringBoot 2.1.3配置log4j2日志框架完整代码示例
  9. Linux shell条件判断
  10. MySQL使用用户变量优化先更新后查询