C语言格式控制符

C语言printf格式控制符一览表 printf 的格式 printf 函数的原型为: # include <stdio.h> int printf(const char *format, ...); 在讲每一个函数的时候都会先把它的函数原型写出来,这个原型你们现在看不懂不要紧,等到学完C语言之后再来看这个原型就会发现它是很有参考意义的!它对深刻理解函数有着很大的价值。 printf 的格式有四种: 1) printf("字符串\n"); # include <stdio.h> int main(v 阅读详情

顾名思义,格式控制符就是对标识符或表达式的格式进行控制,它决定了标识符或表达式的输出形式(长度、对齐方式、小数位数等),它也是C语言中非常重要的一个概念。本人实际工作中虽然经常用到格式控制符,但用的最多的无非是%d%c%s这些,但是在本篇中我将尽可能全面的介绍格式控制符,这其中必然会涉及到好多我没用到的标识符,当然我会尽量在程序中加以验证,同时如有不足之处望不吝赐教,拜谢。

1.格式控制符形式

%  [{+,-}]  [o]  [{m,m.n}]  [{l,h}] <格式控制符>

其中,中括号[]里的内容是可选的,<>里的内容是必须的。以下对各个标志的含义简要介绍:

%:表示格式控制的起始符号,必不可少。--格式控制起始位置

+/-:表示对齐标志,+表示右对齐,-表示左对其,缺省情况下为右对齐。--对齐标志

o:表示当实际长度没有格式控制的长度大时,用“o”补全。--补全内容

m/m.n:其中,m表示输出所占位宽,n表示实际取标识符的多少位输出--占位长度

l/h:l对整型指long型,对实型指double型;h用于将整型字符修正为short

<>:格式控制符

1.1格式控制符

%d:用于输出整型数(整型指本质为整型的数,如intshortchar等)

%c:用于输出一个字符

%s:用于输出一个字符串

%o:以无符号八进制形式输出整数值

%x:以无符号十六进制形式输出整数值

%u:以无符号形式输出十进制数

%f:用来输出浮点数(float),精度为6位小数,第七位四舍五入。

%p:指针的值

1.2占位长度与格式控制符搭配输出

1.2.1 占位长度与%d搭配

%mdm为指定的输出数据的位宽。如果数据的位数小于m,则左端补以空格(因为默认右对齐,所以左补用以占位);如果数据的位数大于m,则以数据的实际位数输出。示例如下:


1.2.2 占位长度与%c搭配

一般无此搭配方式。

1.2.3 占位长度与%s搭配

%msm为指定的输出字符串的宽度。如果字符串的位数小于m,则左端补空格;如果字符串的位数大于m,则以实际的字符串长度输出。实例如下:


%m.ns:意为从左向右截取字符串的n位输出到占位m的位置,左补空。设字符串实际长度为len,则具体表现形式如下:

1.n<len

截取字符串前n个字符,然后做如下判断:

m<n:则输出n个字符

m>n:则输出m个字符,左补空


2.n>len

取字符串的实际(长度len)字符,然后做如下判断:

m<len:则输出len个字符

m>len:则输出m个字符,左补空格


1.2.4 占位长度与%f搭配

%m.nfm为占位宽度,n为小数点右边的位数,浮点数的规则较字符串比起来更为复杂些,你不但要关注浮点数的总占位宽,还要关注小数的占位宽。小数部分的精度为lenDot,下面分整数位数与小数位数简要分析下:

1.2.4.1小数部分:

由于浮点数float的精度为6(即lenDot=6)。算小数部分原则:

1)首先根据浮点数的实际精度得出近似值,原则为:

若浮点数的实际小数位长大于6,则截取6位,第七位四舍五入;若浮点数的实际小数位数小于6,则后补0。如1.23转换成1.2300001.23456789转换成1.234568

2)根据上步中的结果值,从中截取n位长。注意:n一般小于或等于6,因为超过6位的数据不真实。

1.2.4.2整数部分:

整数部分完整输出,唯一要注意的是:

m>(整数位宽+小数点位宽+n)时,左补空。

1.2.4.3示例如下:

1.2.4.4建议

一般不对浮点数float输出大于6位的小数,因为大于6位后的数据已经在浮点精度之外了,是不正确的数据。

1.3补全内容与占位长度、控制符的搭配输出

当标识符的占位长度大于实际的长度时,在多出的位置处用补全内容填充。补全内容默认为空,可以显式指定补全内容为0。实例如下:

 

1.4对齐标志

对齐标志有两种:+-,其中缺省为++表示右对齐,-表示左对齐。对齐标志要相对简单、更好理解,所以不细讲,直接举例验证,如下:

左对齐:

 

右对齐:


2.总结

格式控制符直接影响着程序输出的外观,所以在C语言学习着占据着举足轻重的作用,基本上我们每天的编程都会与它打交道。所以这部分内容值得细细体会、多上机实践。养成善于总结、记笔记的习惯,相信学好它们不在话下。

3.参考文章

本文参考了xuangong的博文:http://www.cnblogs.com/xuangong/archive/2011/07/29/2121537.html



C语言中的格式控制符      用在输入输出函数scanf( )和printf( )中的格式控制部分,即第一个逗号前的双引号内,用来对输出的数据(标识符或表达式)进行格式说明,包括数据类型、长度、对齐方式、小数位数等。1.格式控制符的形式%  [-]  [0]  [m/m.n]  [l/h] 格式控制符     其中[ ]里面的内容是可选的     -:表示左对齐,缺省情况下为右对齐(若没规定输出数据的宽度则为左对... 阅读详情

相关推荐

C语言格式控制符&格式化IO函数

原理:先把数据存放到缓冲区中,遇到回车,return exit() 缓冲满了 scanf和printf切换使用的时候就会刷新缓冲区,在液晶屏(终端)上显示。%i :可以打印十进制,也可以获取键盘输入的八进制(输入的时候加上0)和十六进制(输入的时候加上0x)读取多个变量:scanf(“%d%f%lf”,&a,&b,&c);//a,b,c跟前面格式符号对应。解决办法:通过scanf的返回值来判断,scanf的返回值表示用户输入的符合要求的数据个数。%-10d :10表示位宽,负的10表示输出的数据靠左边。

qq_62917398的博客 5702

C语言的格式控制字符

8.4f表示输出宽度为8的4位小数的数(宽度范围包括整数、小数点和小数部分),在一定程度上%8.4f和%8.4lf输出的结果是相同的,但他们属于不同类型的数值(单精度浮点型和双精度浮点型);%4d表示输出宽度为4的整形数值,采用右对齐形式,实际宽度小于4时,左边以空格填充,当实际宽度大于4时,以实际宽度输出。float用%f,double用%lf,在一定情况下,同一个数用%f和%lf输出时,输出结可能相同,但不管怎么样,两者的格式最好分别对应,可以避免不必要的麻烦。...

KongBai_ren的博客 6399

标准输入与输出与格式控制符

标准输入与输出与格式控制符

everything is possible,anything is OK. 1967

c语言格式控制符总结及其代码示例

c语言 #格式控制符 #嵌入式

weixin_58626360的博客 3212

C语言中输入输出所有格式控制符

title: C语言中输入输出所有格式控制符 date: 2020-01-16 17:02:06 description: C语言输入输出的所有格式控制详解 C语言中输入输出所有格式控制符  最近在重温C语言,发现C语言的输入输出函数scanf和printf函数在控制输入输出时有许多控制符来控制输入输出数据的格式。于是就打算来整理一下。 参考百度百科词条  scanf()是C语言中的一个输入...

qq_38877888的博客 2万+

C语言——格式控制符

整理5种数据类型的定义,并罗列出与之对应的格式控制符,在本文末尾附上5种数据类型下的格式控制符运用代码。

2301_78671068的博客 1514

c语言输入格式控制符大全,c语言格式控制符

http://zhidao.baidu.com/link?url=-YJjz3U0fd_eSW9eLa8ankGo_QbyOOOaKYWyAY9g4mKWQj0DN6l12OSLJz24U8jCwo18MiBCzwpkFLoDM02yv_printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明...

weixin_31822733的博客 8486

C语言输出格式控制符大全

C语言输出格式控制符说明

smartchina的博客 6686

[C语言]格式控制符

在C语言中,我们在使用格式化输入函数以及格式化输出函数进行内容的输入以及输出时,总是需要使用各种格式控制符,为了C语言学习方便,将常用的格式控制符总结如下。

m0_74290207的博客 1410

java的格式控制符_C语言格式控制符

1. 格式控制符格式输出printf 作用是向终端输出若干个类型任意的数据。格式:printf (格式控制符,输出列表)1) 格式控制符l %  格式说明引导符。l -  指定左对齐输出。l 0  指定空位填零。l m.n 指定输出域宽度及精度m表示数据最小宽度,如果实际数据宽度>m,按...

weixin_31256683的博客 806

C语言里面格式控制符的问题

在C里面数据类型很多,可以分为以下几种: <img title= "C语言里面格式控制符的问题 - wade53784 - 写代码都是被逼的_" alt= "C语言里面格式控制符的问题 - wade53784 - 写代码都是被逼的_" style="margin:0 10px 0 0;" src= "http://img0.ph.126.net/40L2X0b39BLrFUPeMzf2oA==/1

A programmer's inner 2936

C语言的数据类型及对应的格式控制符,C语言转义字符和格式控制符参考

C语言转义字符和格式控制符参考转义字符参考:\a:蜂鸣,响铃\b:回退:向后退一格\f:换页\n:换行,光标到下行行首\r:回车,光标到本行行首\t:水平制表\v:垂直制表\\:反斜杠\':单引号\":双引号\?:问号\ddd:三位八进制\xhh:二位十六进制\0:空字符(NULL),什么都不做注:1,\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。2,\n其实应该叫回车换...

weixin_39688875的博客 1496

C语言printf和scanf函数的格式控制符介绍

C语言printf格式控制符介绍 C语言中非常重要的两个函数,输入函数(scanf,功能是通过键盘给程序中的变量赋值)输出函数(printf,功能是将程序运行的结果输出到屏幕上),如果在程序中要使用 printf 或者 scanf,那么就必须要包含头文件 stdio.h。因为这两个函数就是包含在该头文件中的。 其中 printf 的功能很强大,用法很灵活,比较难掌握,本文重点介绍printf 的用法。 printf 的格式 printf 函数的原型为: # include <stdio.h&

cnds123的专栏 5963

C语言printf格式控制符

printf用法大全,C语言printf格式控制符一览表

lin的博客 596

【C语言格式控制符与输入输出函数

摘要:C语言中的格式控制符是输入输出函数的核心元素,用于指定数据的转换格式。常见控制符包括%d(整型)、%f(浮点型)、%c(字符型)、%s(字符串)等,分别对应不同数据类型。printf和scanf函数通过控制符实现数据格式化,其中printf支持对齐、精度等高级格式,scanf则需注意缓冲区处理。此外,puts、putchar、sprintf等函数提供了更简单的输出方式,而getchar可用于字符输入。使用这些函数时需注意数据类型匹配和缓冲区管理,避免潜在错误。

qq_45937810的博客 941

【C语言格式控制符

%d,%f带符号; %u不带符号十进制整数 %o不带符号八进制整数 %x不带符号十六进制整数 %X十六进制字母为大写 /* *学生:一凡 *日期:2017/9/22 *问题描述:格式控制符 */ #include int main() { int a=1,b=11,c=11111,d=-12; float o=6.5,p=-12.3; double x=3.14

a1398357432的博客 1243

C语言printf格式控制符完全指南

需求格式符示例整数%d十六进制数%x%X浮点数%f科学计数法%e%E单个字符%c字符串%s指针地址%p百分比符号%%左对齐%-前导零%0指定宽度%n指定精度%.n掌握这些格式控制符,你就能轻松应对C语言中的各种输出需求了!

niuTyler的博客 685

[C语言]多样式的格式控制符

C语言中的格式控制符类型繁多,虽然格式字符可能就那么几个,但组合起来使得格式控制符变得多样化。

m0_74290207的博客 324
上一篇: C语言之语句
下一篇: C语言运算符:(一)
IT小白wjx
博客等级 码龄12年 22粉丝 11原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值