文章目录

  • 一、前言
  • 二、printf函数
    • 1.printf函数定义
    • 2.格式
      • 格式化字符串
        • 1.字符串常量
        • 2.格式控制字符串
          • a.类型
          • b.标志
          • c.最小宽度
          • d. .精度
          • e.类型长度
        • 3.转义字符
  • 三、总结

一、前言

上一篇文章主要叙述了一下scanf函数的小细节部分,这次咱们就探究c语言中的printf函数,来揭开它的真面目!!!

二、printf函数

1.printf函数定义

1.printf函数是c中的输出函数,也是标准的库函数(库函数如果不太懂啥意思的话,后续再详细介绍,本次文章主要了解如何用)使用printf函数需要声明在头文件#include<stdio.h>下。
2.函数原型

int printf(const char*format,...);

返回值
正确的时候返回输出的字符总数
错误的话返回一个负值

2.格式

printf("格式化字符串",输出列表);

格式化字符串

1.字符串常量

原样输出

printf("hello c!");//这种可以就算字符串常量
//输出为hello c!(原样输出了)

2.格式控制字符串

格式为:%【标志】【最小宽度】【.精度】【类型长度】【类型】。

a.类型
%a
浮点数、十六进制数字和p-记数法(C99)
%A
浮点数、十六进制数字和P-记法(C99)
%c
一个字符
%d
有符号十进制整数
%e
浮点数、e-记数法
%E
浮点数、E-记数法
%f
浮点数、十进制记数法(单精度)
%lf
双精度浮点数
%g
根据数值不同自动选择%f或%e,%e格式在指数小于-4或者大于等于精度时使用
%G
根据数值不同自动选择%f或%E,%E格式在指数小于-4或者大于等于精度时使用
%i
有符号十进制数(与%d相同)
%o
无符号八进制整数
%p
指针
%s
字符串
%u
无符号十进制整数
%x
使用十六进制数字0f的无符号十六进制整数(0f中是数字0,而不是字母o)
%X
使用十六进制数字0F的无符号十六进制整数
%%
打印一个百分号
b.标志
1.-(负号)
项目是左对齐的:也就是说,会把项目打印在字段的左侧开始处,右边填空格。默认是右对齐,左边填空格。
例如:”%-20s”
2.+
有符号的值若为正,则显示带加号的符号:若为负,则带减号的符号
例如:”%+6.2f”
3.(空格)
有符号的值若为正,则显示带前导空格(但是不显示符号):若为负,则带减号符号。+标示会覆盖空格标志
例如:”% 6.2f”
4.#
使用转换说明的可选形式。若为%o格式,则以0开始;若为%x和%X格式,则以0x或0X开始,对于所有的浮点形式,#保证了即使不限任何数字,也打印一个小数点字符。对于%g和%G格式,它防止尾随零被删除。
例如:“%#o”、“%#8.0f”和“%+#10.3E”
5.0
对于所有的数字格式,用前导零而不是用空格填充字段宽度。如果出现-标志或者指定了精度(对于整数)则忽略该标志。
例如:“%010d”和“%08.3f”
c.最小宽度

用十进制整数来表示输出的最少位数。若实际位数多于指定的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

printf("%06d",1000);
输出为001000,默认右对齐,且少的添零,故为该数!
d. .精度

精度格式符以“.”开头,后跟十进制整数。可取值如下:
.精度
(1)对于整型(d,i,o,u,x,X),精度表示输出的最小的数字个数,不足补前导零,超过不截断。
(2)对于浮点型(a, A, e, E, f ),精度表示小数点后数值位数,默认为六位,不足补后置0,超过则截断。
(3)对于类型说明符g或G,表示可输出的最大有效数字。
(4)对于字符串(s),精度表示最大可输出字符数,不足正常输出,超过则截断。
注意呦!!!!浮点数截断时是会四舍五入的!!

e.类型长度

大家不要被这些名称吓到,举个非常简单的例子,double类型为双精度对吧,所以指令格式应该为%lf,此时前面那些别的乱七八糟的都省略了,此时l表示的就是那个类型长度!!

1.h
和整数转换说明符一起使用,表示一个short int 或者 unsigned short int 类型数值。
示例:“%hu”、“%hx”和“%6.4hd”
2.hh
和整数转换说明符一起使用,表示一个signed char 或者unsigned char类型数值。
示例:“%hhu”、“%hhx”和“%6.4hhd”
3.j
和整数转换说明符一起使用,表示一个intmax_t或uintmax_t值。
示例:“%jd”和“%8jX”
4.l(字母)
和整数说明符一起使用,表示一个long int 或者unsigned long int 类型值。
示例:“%ld”和“%8lu”
5.ll(字母)
和整数说明符一起使用,表示一个long long int或 unsigned 6.long long int 类型值 (C99)。
示例:“%lld”和“%8llu”
7.L
和浮点转换说明符一起使用,表示一个long double值。
示例:“%Lf”和“%10.4Le”
8.t
和整数转换说明符一起使用,表示一个ptrdiff_t值(与两个指针之间的差相对应的类型) (C99)
示例:“%td”和“%12ti”
9.z
和整数转换说明符一起使用,表示一个size_t值(sizeof返回的类型) (C99)。
示例:“%zd”和“%12zx”

3.转义字符

这个转义字符呢,前面我的初识c语言中放入了相关详细转义字符的总结,大家可以参考那个哈,在这我简单说一下为啥printf函数中还用的到转义字符

printf("\n");//此时里面放的为\n这个转义字符,输出效果为换行
printf("\t");//\t这个转义字符,输出效果为空格

更多详细的转义字符看这呦初识c语言(一)

三、总结

本篇文章讲述了c中的输出函数,上一篇文章讲述的为输入函数,在任何一种语言中肯定少不了输入输出,所以我感觉在这种小地方抓起来,还是有好处的,就像有的编程题他让你以什么格式输入,什么格式输出,假设你不了解这些,是不是一团懵,甚至还觉得题目错了,所以呀,在我们的学习中一定要注意一些细节呦,同样,欢迎小可爱们指正完善,一起加油吧!!

c语言中的输入输出函数之printf函数相关推荐

  1. c语言中的输入输出函数之scanf函数

    目录 前言 scanf函数 定义 scanf函数一般形式 地址表列 格式字符串 * 域宽 长度修饰符 格式字符串中存在普通字符 scanf和scanf_s的区别以及vs解决scanf报错的另一种方法 ...

  2. 简单讲解c语言中各个输入输出函数使用场景与不同,填补你的知识盲区

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 C语言中有多个输入输出函数,各个输入输出函数可能因为运算方式的不同导致其形成差异,令他们的使用场景不同,我们大多数人可能只会使用他,却 ...

  3. C语言中的输入输出函数

    ----------------------------- //键盘缓存区(按enter送入)==>输入缓存区 ==>scanf ----------------------------- ...

  4. c语言中调整颜色的函数_C语言中的输入输出函数

    点击上方"学士科技",选择"设为星标" 技术干货第一时间送达! 01 字符数据输入输出 字符数据输出函数putchar() C语言中字符数据输出使用的是putc ...

  5. c语言中用于格式化输出的函数,C语言中格式化输入输出函数(转)

    1.1.1 格式化输入输出函数 一.printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息.在编写程序时经常会用到此函数.printf()函数的调用格 ...

  6. 整理C语言和C++中常用输入输出函数

    1.C语言中的输入与输出 在C语言中我们常用输入函数"scanf"和输出函数"printf",而与之配套的格式符有 程序如下: #include<stdi ...

  7. 怎么在c语言中输入一串字母,C语言中如何输入一个数字n,再输入一串字母,控制字母个数为n(n是变量,1...

    C语言中如何输入一个数字n,再输入一串字母,控制字母个数为n(n是变量,1以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ...

  8. python输出变量的值使用_如何使用python语言中的输入和输出打印对应的值

    在python设计语言中,输入使用input()方法,而输出使用print()方法:其中,输出方法可以拼接变量,如字符串.数值类型的.下面利用几个实例说明python语言中的输入和输出的用法,操作如下 ...

  9. 在C语言中以编程的方式获取函数名

    在C语言中以编程的方式获取函数名 仅仅为了获取函数名,就在函数体中嵌入硬编码的字符串,这种方法单调乏味还易导致错误,不如看一下怎样使用新的C99特性,在程序运行时获取函数名吧. 对象反射库.调试工具及 ...

最新文章

  1. Mock.js mysql_平台支持mock功能—未完成版
  2. 15+ tar command usages with examples – Unix/Linux--reference
  3. 随笔   面试题网站
  4. 加快读博失败的10种方法
  5. dubbo 路由配置_Dubbo-go v1.5.1发布,Dubbo 的 Go实现
  6. 正则表达式JavaScript版本回顾笔记背诵版本
  7. CentOS 7 SSH相关使用问题及其解决办法
  8. document.documentElement和document.body的区别
  9. Linux安装redis数据库
  10. 雾里看花之 Python Asyncio
  11. NS方程求解-NSFnet
  12. 阿里icon图标库使用说明
  13. 安卓 USB 无权限请求权限崩溃 UsbManager.requestPermission()空指针异常
  14. 用户使用报告_分享最新2020年抖音用户画像报告
  15. 【Vue项目复习笔记】详情页的展示
  16. 在职场|项目管理干货总结
  17. 布莱克斯科尔斯模型(四)方程推导过程
  18. python字典的遍历方式:向列表一样通过索引遍历字典的值
  19. 利用百分位数确定考核指标的具体数字
  20. Unity---RPG游戏开发心得---单例模式

热门文章

  1. 【Redis学习02】基于session和基于redis实现登录功能
  2. excel函数之MID\LEFT\RGHT
  3. 时间戳与时间之间的转换
  4. (转载)供电电路切换与锂电池充电电路设计
  5. 计算机网络-我家是怎么上网的?
  6. 为什么用scrum_为什么幼儿园的老师是最好的Scrum大师。
  7. 学习笔记:TabLayout 全面总结
  8. MySQL超过800G的大表优化方案
  9. 人与人不远不近,才是最好的距离
  10. 记录Qml删除数组内多个元素问题