c语言中的输入输出函数之printf函数

文章目录

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

一、前言

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

二、printf函数

1.printf函数定义

1.printf函数是c中的输出函数,也是标准的库函数(库函数如果不太懂啥意思的话,后续再详细介绍,本次文章主要了解如何用)使用printf函数需要声明在头文件#include下。
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.2f3.(空格)
有符号的值若为正,则显示带前导空格(但是不显示符号):若为负,则带减号符号。+标示会覆盖空格标志
例如:”% 6.2f4.#
使用转换说明的可选形式。若为%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_tuintmax_t值。
示例:“%jd”和“%8jX”
4.l(字母)
和整数说明符一起使用,表示一个long int 或者unsigned long int 类型值。
示例:“%ld”和“%8lu5.ll(字母)
和整数说明符一起使用,表示一个long long intunsigned 6.long long int 类型值 (C99)。
示例:“%lld”和“%8llu7.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函数_第2张图片

你可能感兴趣的:(c语言,开发语言)