【C语言】printf你真的用明白了吗?

2024-02-26 1139阅读

温馨提示:这篇文章已超过391天没有更新,请注意相关的内容是否还可用!

目录

1.printf是什么?

2.格式控制字符串 与 输出值参数表

2.1格式控制字符串

2.2输出值参数表

2.3格式字符 和 格式修饰符 一览图 

2.3.1格式字符一览图

2.3.2格式修饰符

 3.常用格式字符详解

 %d

%md 

 %f

%.nf

%m.f

 %c和%s

%c

%s

 6.printf的返回值

5.printf中的常见问题

6.总结 

7.后言


1.printf是什么?

printf函数是格式输出函数,其关键字最末一个字母f即为“格式(format)”之意。其功能是按照用户指定的格式,把指定的数据显示到显示器屏幕上。

printf函数是一个标准库函数,它是函数原型在头文件“stdio.h”。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。printf函数调用的一般形式为:

printf(“格式控制字符串”,输出表列) 

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

 其中,f=%f,c=%f\n 是格式控制字符串,f,c 是输出值参数表。


2.格式控制字符串 与 输出值参数表

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

2.1格式控制字符串

格式控制字符串是用"双引号"括起来的字符串,包括三类信息:

  1. 格式字符。格式字符由“%”引导,如%d、%f等。它的作用是控制输出字符的格式。
  2. 转义字符。格式控制字符串里的转义字符按照转义后的含义输出,如上面printf函数双引号内的换行符“\n”,即输出回车。
  3. 普通字符。普通字符即需要在输出时原样输出的字符,如上面printf函数中双引号内的“f=”和“c= ”部分。

2.2输出值参数表

(2)输出值参数表是需要输出的数据项的列表,输出数据项可以是常量、变量或表达式,输出值参数之间用逗号分隔,其类型应与格式字符相匹配。每个格式字符和输出值参数表中的输出值参数一一对应,如果没有输出参数时,格式控制字符串中不再需要格式字符。  


2.3格式字符 和 格式修饰符 一览图 

2.3.1格式字符一览图

格式字符说明
d输出带符号的十进制整数,正数的符号省略
u以无符号的十进制整数形式输出
o以无符号的八进制整数形式输出,不输出前导符0
x以无符号十六进制整数形式(小写)输出,不输出前导符0x
X以无符号十六进制整数形式(大写)输出,不输出前导符0X
f以小数形式输出单、双精度数,隐含输出6位小数
e以指数形式(小写e表示指数部分)输出实数
E以指数形式(大写E表示指数部分)输出实数
g自动选取f或e中输出宽度较小的一种使用,且不输出无意义的0
c输出一个字符
s输出字符串

注:%o %x %X如果向输出前导符要在格式字符前加#, 如%#o %#x %#X 。

2.3.2格式修饰符

格式修饰符说明
英文字母l修饰格式字符d、u、o、x时,用于输出long型数据
英文字母L修饰格式字符f、e、g时,用于输出long double型数据
英文字母h修饰格式字符d、o、x时,用于输出short型数据
输出域宽m(m为整数)指定输出项输出时所占的列数
显示精度.n(n为整数)    对于实数,表示输出n位小数;对于字符串,表示截取的字符个数
-(减号)

输出数字或字符在域内向左靠


 3.常用格式字符详解

 %d

 输出带符号的十进制整数,正数的符号不输出。

int a = 888,b = -666;
printf("%d\n%d",a,b);

 输出结果:

【C语言】printf你真的用明白了吗?

 还可以在%和格式字符中间插入格式修饰符,用于指定输出数据的域宽(所占的列数),如用“%5d”,指定输出数据占5列,输出的数据在域内向右靠齐。如:

%md 

int a = 888, b = -666;
printf("%5d\n%5d", a, b);

输出结果: 

【C语言】printf你真的用明白了吗?

从结果可以看出,在%和d中间加数字5,888占3个域宽,指定域宽>输出数据长度。输出数据靠右,前面补空格。

如果 指定域宽

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]