Printf格式
c语言的printf函数
c语言的printf函数
printf函数是C语言中的一个非常重要的函数,用于向屏幕输
出数据。
它的语法格式为:
printf('格式控制字符串', 参数列表);
其中,格式控制字符串用于指定输出的格式,参数列表则是需要输出的数据。
在格式控制字符串中,使用特定的占位符来表示不同的数据类型。
例如,%d表示输出整数,%f表示输出浮点数,%c表示输出字符等等。
在参数列表中,需要按照格式控制字符串中占位符的顺序,依次传入相应的数据。
除了简单的输出数据外,printf函数还支持格式化输出、对齐
等丰富的功能。
例如,可以通过指定输出宽度、精度、填充字符等来控制输出的格式。
总的来说,printf函数是C语言中非常基础和重要的一个函数,掌握它的使用方法和一些高级功能,对于C语言程序员来说是必不可少的。
- 1 -。
C++printf()输出格式
C++printf()输出格式1. 调⽤格式1 printf("<格式化字符串>",<参量表>); 其中格式化字符串包括两部分内容: ⼀部分是正常字符, 这些字符将按原样输出; 另⼀部分是格式化规定字符, 以"%"开始, 后跟⼀个或⼏个规定字符, ⽤来确定输出内容格式。
参量表是需要输出的⼀系列参数, 其个数必须与格式化字符串所说明的输出参数个数⼀样多, 各参数之间⽤","分开, 且顺序⼀⼀对应,2. 格式化字符%d ⼗进制有符号整数%u ⼗进制⽆符号整数%f 浮点数%s 字符串%c 单个字符%p 指针的值%e 指数形式的浮点数%x, %X ⽆符号以⼗六进制表⽰的整数%0 ⽆符号以⼋进制表⽰的整数%g ⾃动选择合适的表⽰法说明:1. 可以在"%"和字母之间插进数字表⽰最⼤场宽。
例如:%3d 表⽰输出3位整型数, 不够3位右对齐。
%9.2f 表⽰输出场宽为9的浮点数, 其中⼩数位为2, 整数位为6, ⼩数点占⼀位, 不够9位右对齐,超过9位,按实际输出。
%8s 表⽰输出8个字符的字符串, 不够8个字符右对齐。
%04d 表⽰在输出⼀个⼩于4位的数值时, 将在前⾯补0使其总宽度为4位。
%6.9s 表⽰显⽰⼀个长度不⼩于6且不⼤于9的字符串。
若⼤于9, 则第9个字符以后的内容将被删除。
2. 可以在"%"和字母之间加⼩写字母 l, 表⽰输出的是长型数。
例如: %ld 表⽰输出long整数, %lf 表⽰输出double浮点数。
3. 可以控制输出左对齐或右对齐,即在"%"和字母之间加⼊⼀个"-" 号可说明输出为左对齐, 否则为右对齐。
例如: %-7d 表⽰输出7位整数左对齐,%-10s 表⽰输出10个字符左对齐。
3. 特殊规定字符\n 换⾏\f 清屏并换页\r 回车\t Tab符\xhh 表⽰⼀个ASCII码⽤16进表⽰,其中hh是1到2个16进制数。
printf()格式化输出详解
printf的格式控制的完整格式:%- 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。
N指精度。
用于说明输出的实型数的小数位数。
对数值型的来说,未指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指lon g型,对实型指dou ble型。
h用于将整型的格式字符修正为s hort型。
---------------------------------------格式字符格式字符用以指定输出项的数据类型和输出格式。
①d格式:用来输出十进制整数。
有以下几种用法:%d:按整型数据的实际长度输出。
%m d:m为指定的输出字段的宽度。
如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld:输出长整型数据。
②o格式:以无符号八进制形式输出整数。
对长整型可以用"%lo"格式输出。
同样也可以指定字段宽度用“%mo”格式输出。
例:m ain(){ i nt a= -1;pri ntf("%d, %o", a, a);} 运行结果:-1,177777程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。
③x格式:以无符号十六进制形式输出整数。
对长整型可以用"%l x"格式输出。
同样也可以指定字段宽度用"%mx"格式输出。
Printf函数允许使用的格式字符(printf格式代码)
Printf函数允许使用的格式字符格式字符名称格式说明符说明
d格式符%d 以有符号
十进制形
式输出整
数按整型数据的实际长度输出
%md 按照指定字段宽度m输出。
若数据位数小于m,
则左端补空格;若数据位数不小于m,则按实际
位数输出
%ld 按长整型数据的实际长度输出
%mld 按指定字段宽度m输出长整型数据,具体同第二
行md说明
u格式符%u 以无符号十进制形式输出整数。
按数据的实际长度输出
o格式符%o 以无符号八进制形式输出整数(不输出前导符0)。
按数据的
实际长度输出
x格式符%x(或%X) 以无符号十六进制形式输出整数(不输出前导符0x)。
按数
据的实际长度输出
c格式符%c 输出一个字符
s格式符%s 输出字符串,不输出字符串结束符号“\0”
f格式符%f 以有符号
小数形式
输出单、
双精度实
数输出时整数部分全部输出,并输出6位小数
%m.nf 输出时数据位数占m列,其中n位小数。
如数据
位数<m,则左端补空格,靠右对齐
%-m.nf 输出时数据位数占m列,其中n位小数。
如数据
位数<m,则右端补空格,靠右对齐
e格式符%e(或%E) 以指数形
式输出实
数输出时小数部分占6位(小数点前有且仅有一位非零数字),指数部分占5位(其中e和指数符号各占一位,指数占3位,如e++002),共13位
%m.ne -、m、n含义同前。
n指数字部分的小数位数
%-m.ne
g格式符%g(或%G) 由系统决定选用%f或%e格式,以便输出宽度最小。
c语言printf()输出格式大全
c 语言printf() 输出格式大全1 •转换说明符" e.g. "% 6.2f"# :对c,s,d,u 类无影响;对o 类,在输出时加前缀o ;对x 类, 在输出时加前缀Ox ;对e,g,f类当结果有小数时才给出小数点。
3.格式字符串(格式)[标志][输出最少宽度][.精度][长度]类型 "%-md":左对齐,若m 比实际少时,按实际输出。
"%m.ns":输出m 位,取字符串(左起)n 位,左补空格,当n>m or m省略时m=ne.g."%7.2s"输%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)%c 字符%d 有符号十进制整数%f 浮点数(包括float 和 doulbe)%e(%E) 浮点数指数输出[e-(E-)记数法]%g(%G) 浮点数不显无意义的零"0"%i 有符号十进制整数 (与%d 相同)%u 无符号十进制整数%o 八进制整g. 0123%x(%X) 十六进制整数0f(0F)e.g.0x1234%p 指针%s 字符串%% "%"左对齐: "-" e.g. "%-20s"右对齐:"+" e.g."%+20s"2.标志入CHINACH"输出%m.nf":输出浮点数,m为宽度,n为小数点右边数位e.g. "%3.1f"输入3852.99输出3853.0长度:为h短整形量,1为长整形量printf的格式控制的完整格式:% - 0 m.n I或h格式字符下面对组成格式说明的各项加以说明:①%表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
printf格式字符串
f double 参数按照常规的浮点数格式打印。缺省精度为6
s char* 打印一个字符串
% 无 打印一个%字符
n int* 这个代码是独特的,它不产生任何输出。相反,到目前为止函数所输出的字符数目将被保存到对应的参数中
如果精度字段大于最小字段宽度值则字段宽度无效;
如果值为0且精度也为0,则转换结果就不会产生数字。
f 精度字段决定将出现在小数点之后的数字位数。
当使用s类型的转换时,精度指定将被转换的最多字符数。
格式字符串是由普通字符和格式代码组成。
格式代码 = % + (0至多个标志字符) + (最小字段宽度)+ (精度) + (修改符)+ 转换类型
小端字节序:针对类型而言,int的4个字节,低位字节存放在低地址
大端字节序:针对类型而言,int的4个字节,高位字节存放在低地址
转换类型:
printf("%c", 'c'); 'c'先转化为int然后再裁剪为unsigned char类型并作为字符打印。
[%#X] 49 [0X31]
[%#2X] 49 [0X31]
[%#3X] 49 [0X31]
当值非负时,这个标志把一个空格添加到它的开始位置。注意这个标志和正号标志是相互排斥的,如果两个同时给出,空
格标志便被忽略。
# 指定某些代码的另一种输出形式,详情:
用于... #标志
o 保证产生的值以一个零开头
printf("%f\n", (double)x); 结果:123.000000
c++ printf 基本用法举例
c++ printf 基本用法举例printf是C语言中的一个重要函数,用于在控制台上输出格式化的字符串。
通过printf函数,我们可以方便地输出各种类型的数据,包括整数、浮点数、字符、字符串等。
下面我们将介绍printf函数的常用用法和举例。
一、printf函数的定义和基本用法printf函数的定义格式为:printf(“格式控制符”,“输出参数1”,“输出参数2”...)。
其中,“格式控制符”用于指定输出的格式和类型,而“输出参数”则是需要输出的数据。
基本用法示例:```c#include<stdio.h>intmain(){printf("Hello,world!\n");printf("Thevalueofxis:%d\n",x);printf("Theresultis:%.2f\n",result);return0;}```上述示例中,我们输出了三个字符串和一个浮点数。
第一个字符串直接输出,后面两个字符串使用了格式控制符。
%d表示输出一个整数,%.2f表示输出一个浮点数并保留两位小数。
二、printf函数的常用格式控制符printf函数支持多种格式控制符,包括:%d、%f、%s、\n、\%、\%、^等。
下面我们将介绍一些常用的格式控制符及其用法。
1.%d:输出一个整数。
2.%f:输出一个浮点数。
3.%s:输出一个字符串。
4.\n:换行符。
5.\%:转义字符,输出一个百分号%。
6.\:转义字符,输出一个反斜杠\。
7.^:输出上箭头字符^。
常用格式控制符用法示例:```c#include<stdio.h>intmain(){inta=10;floatb=20.5;charc[]="Hello,world!";printf("a=%d\n",a);//输出整数a的值。
printf("b=%.2f\n",b);//输出浮点数b的值并保留两位小数。
printf函数中常用的格式说明
3.2.2 printf函数中常用的格式说明格式控制中,每个格式说明都必须用“%”开头,以一个格式字符作为结束,在此之间可以根据需要插入“宽度说明”、左对齐符号“-”、前导零符号“0"等。
1.格式字符%后允许使用的格式字符和它们的功能如表3.1所示。
在某些系统中,可能不允许使用大写字母的格式字符,因此为了使程序具有通用性,在写程序时应尽量不用大写字母的格式字符。
2.长度修饰符在%和格式字符之间,可以加入长度修饰符,以保证数据输出格式的正确和对齐。
对于长整型数(long)应该加l,即%ld;对于短整型数(short)可以加h,即%hd。
3.输出数据所占的宽度说明当使用%d,%c,%f,%e,%s,…的格式说明时,输出数据所占的宽度(域宽)由系统决定,通常按照数据本身的实际宽度输出,前后不加空格,并采用右对齐的形式。
也可以用以下三种方法人为控制输出数据所占的宽度(域宽),按照使用者的意愿进行输出。
(1)在%和格式字符之间插入一个整数常数来指定输出的宽度n(例如%4d,n代表整数4)。
如果指定的宽度n不够,输出时将会自动突破,保证数据完整输出。
如果指定的宽度n超过输出数据的实际宽度,输出时将会右对齐,左边补以空格,达到指定的宽度。
(2)对于float和double类型的实数,可以用“n1.n2”的形式来指定输出宽度(n1和n2分别代表一个整常数),其中n1指定输出数据的宽度(包括小数点),n2指定小数点后小数位的位数,n2也称为精度(例如%12.4f,n1代表整数12 ,n2代表整数4)。
对于f,e或E,当输出数据的小数位多于n2位时,截去右边多余的小数,并对截去部分的第一位小数做四舍五入处理;当输出数据的小数位少于n2时,在小数的最右边补0,使得输出数据的小数部分宽度为n2。
若给出的总宽度n1小于n2加上整数位数和小数点(e或E 格式还要加上指数的5位),则自动突破n1的限制;反之,数字右对齐,左边补空格。
C语言printf输出格式
C语⾔printf输出格式printf的输出格式:printf 的格式printf 函数的原型为:# include <stdio.h>int printf(const char *format, ...);在讲每⼀个函数的时候都会先把它的函数原型写出来,这个原型你们现在看不懂不要紧,等到学完C语⾔之后再来看这个原型就会发现它是很有参考意义的!它对深刻理解函数有着很⼤的价值。
printf 的格式有四种:1) printf("字符串\n");1. # include <stdio.h>2. int main(void)3. {4. printf("Hello World!\n"); // \n表⽰换⾏5. return 0;6. }其中\n表⽰换⾏的意思。
它是⼀个转义字符,前⾯在讲字符常量的时候见过。
其中 n 是“new line”的缩写,即“新的⼀⾏”。
此外需要注意的是,printf 中的双引号和后⾯的分号必须是在英⽂输⼊法下。
双引号内的字符串可以是英⽂,也可以是中⽂。
2) printf("输出控制符",输出参数);1. # include <stdio.h>2. int main(void)3. {4. int i = 10;5. printf("%d\n", i); /*%d是输出控制符,d 表⽰⼗进制,后⾯的 i 是输出参数*/6. return 0;7. }这句话的意思是将变量 i 以⼗进制输出。
那么现在有⼀个问题:i 本⾝就是⼗进制,为什么还要将 i 以⼗进制输出呢?因为程序中虽然写的是 i=10,但是在内存中并不是将 10 这个⼗进制数存放进去,⽽是将 10 的⼆进制代码存放进去了。
计算机只能执⾏⼆进制 0、1 代码,⽽ 0、1 代码本⾝并没有什么实际的含义,它可以表⽰任何类型的数据。
printf输出各种格式
另外, 若想在输出值前加一些0, 就应在场宽项前加个0。
例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度
为4位。
如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,
b 字符 作用
——————————————————————————
\n 换行
\f 清屏并换页
\r 回车
\t Tab符
\xhh 表示一个ASCII码用16进表示,
其中hh是1到2个16进制数
━━━━━━━━━━━━━━━━━━━━━━━━━━
printf("*i=%4d\n", *i); /*输出4位十进制整数*i= 12*/
printf("*i=%-4d\n", *i); /*输出左对齐4位十进制整数*i=12*/
printf("i=%p\n", i); /*输出地址i=06E4*/
printf("f=%f\n", f); /*输出浮点数f=3.141593*/
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法
━━━━━━━━━━━━━━━━━━━━━━━━━━
说明:
(1). 可以在"%"和字母之间插进数字表示最大场宽。
例如: %3d 表示输出3位整型数, 不够3位右对齐。
%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,
小数点占一位, 不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
c语言printf输出格式
c语言printf()输出格式大全1.转换说明符%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)%c 字符%d 有符号十进制整数%f 浮点数(包括float和doulbe)%e(%E) 浮点数指数输出[e-(E-)记数法]%g(%G) 浮点数不显无意义的零"0"%i 有符号十进制整数(与%d相同)%u 无符号十进制整数%o 八进制整数 e.g. 0123%x(%X) 十六进制整数<?xml:namespace prefix = st1 />() e.g. 0x1234 %p 指针%s 字符串%% "%"2.标志左对齐:"-" e.g. "%-20s"右对齐:"+" e.g. "%+20s"空格:若符号为正,则显示空格,负则显示"-" e.g. "% "#:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点。
3.格式字符串(格式)[标志][输出最少宽度][.精度][长度]类型"%-md" :左对齐,若m比实际少时,按实际输出。
"%m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=ne.g. "%7.2s" 输入CHINA输出" CH""%m.nf":输出浮点数,m为宽度,n为小数点右边数位e.g. "%" 输入3852.99输出3853.0长度:为h短整形量,l为长整形量printf的格式控制的完整格式:% - .n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。
printf函数
例1:输出实数时的有效位数 #include<stdio.h> main() {
float a; a=10000/3.0 printf("%f\n",a); }
例2:输出双精度数时的有效位数 #include<stdio.h> main() {
说明:前一行打印正确,但是后一行1.3与%d类型不匹配打印错误,不仅 如此还影响到后一个也打印错误。
(8)e格式符。 以指数形式输出实数。
%e:不指定输出数据所占宽度和数字部分的小数位数。 %m.ne 和%-m.ne,m、n和”-”字符的含义与前相同。N指拟输出的数据的小数部分 (又称尾数)的小数位数。
注:c1和c2 被定义为char ,以%d的形式输出 时,得到的是ASCII码。
(3)f格式符。用来输出实数(包括单、双精度),以小数形式输出。有以下 几种用法:
%f:不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小 数。
说明:
a.单精度实数的有效位数一般为7位。因此,在输出的数字中并非全部数字 都是有效数字。
例:printf(“a=%d,b=%d”,a,b)
普通字符 格式说明 输出列表
若a、b的值分别为3、4,则输出为:a=3,b=4
2、格式字符 输出时,对不同类型的数据要使用不同的格式字符。常用的有以下几种格式字符:
(1)d格式符。用来输出十进制整数,有以下几种用法:
% d:按十进整型数据的实际长度输出。
scanf(“%4d%4d”,&a,&b);
P19例1.6 #include<stdio.h> main() { char a,b; printf("input charactet a,b\n"); scanf("%c%c",&a,&b); printf("%c,%c\n",a,b); }
printf用法
输出就是浮点数m在最小长度a,允许最大小数b的数据
-就是向左对齐
+就是向右对齐
"格式描述串"是由一系列的"格式转换说明符号"组成,格式转换说明符号的描述形式如下:
% [+][-] 0 m[.n] [输出精度] <形式字母>
(3):m[.n]指定输出长度,如果输出的是实例,则m表示该项输出占用字符位置的总长度,n表示小数部分的字
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:
printf("%f%%", 1.0/3);
输出0.333333%。
---------------------------------------
对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位.
程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。
③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。
④u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。
符长度,如float x=4.56;printf("%7.4f",x);
(4)0:指定不被使用的空位置填写0,入股不指定使用0,则不使用的位置为空白.该项仅仅对树枝输出时才可
以指定,对字符串输出不用指定.例如
C语言printf函数
C语言printf函数一、printf函数的一般调用形式功能:printf函数用于输出信息。
格式:printf(格式控制,输出项1,输出项2,……)说明:格式控制是字符串形式,输出项是要输出的字符或变量名。
在printf函数的调用之后加上“;”,则构成输出语句。
例如:printf(“a=%d,b=%d”,a,b); 语句,其中,printf是函数名;“a=%d,b=%d”是输出格式控制,决定了输出数据的内容和格式;a、b称为输出项,是printf函数的实参。
二、printf函数中常用的格式说明格式控制中,每个格式说明都必须用“%”开头,以一个格式字符作为结束,在此之间可以根据需要插入“宽度说明”、左对齐符号“-”、前导零符号“0”等。
A:格式字符:主要用于说明输出字符的格式;B:长度修饰符:在“%”和格式字符之间可以加入长度修饰符,以保证数据输出格式的正确和对齐;C:输出数据所占的宽度说明:当使用%d、%c、%f、%e、%s等的格式说明时,输出数据所占的宽度由系统决定,通常按照数据本身的实际宽度输出,前后不加空格,并采用右对齐的形式;D:输出数据左对齐:输出数据都默认为右对齐,若想左对齐,可以在格式控制中的%与格式字符之间加一个“-”来实现;E:使输出数据总带“+”和“-”:通常输出的数据如果是负数,前面有“-”,但正数前面的“+”一般都省略了,如果想让每一个数前面都带正负号,可以在“%”和格式字符之间加一个“+”来实现。
三、使用printf函数时的注意事项1:printf的输出格式为自由格式,是否在两个数之间留逗号、空格、或回车,完全取决于格式控制;2:格式控制中必须含有与输出项一一对应到输出格式说明,类型必须匹配,若格式说明与输出项的类型不一一对应匹配,则不能正确输出,而且编译时不会报错。
若格式说明个数少于输出项个数,则多余的输出项不予输出;若格式说明的个数多于输出项的个数,则将输出一些无意义的数字乱码;3:在格式控制中,除了前面要求的输出格式,还可以包括任意的合法字符(包括汉字和转义字符),这些字符输出时将原样输出,此外还可以利用\n(换行)、\r(回车)、\t(制表)、\a(响铃)等控制输出格式;4:如果要输出%,可以在格式控制中用“%%”表示,将输出一个%;5:printf函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。
c语言printf()输出格式控制
1.转换说明符%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)%c 字符%d 有符号十进制整数%f 浮点数(包括float和doulbe)%e(%E) 浮点数指数输出[e-(E-)记数法]%g(%G) 浮点数不显无意义的零"0"%i 有符号十进制整数(与%d相同)%u 无符号十进制整数%o 八进制整数 e.g. 0123%x(%X) 十六进制整数0f(0F) e.g. 0x1234%p 指针%s 字符串%% "%"2.标志左对齐:"-" e.g. "%-20s"右对齐:"+" e.g. "%+20s"空格:若符号为正,则显示空格,负则显示"-" e.g. "% 6.2f"#:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点。
3.格式字符串(格式)[标志][输出最少宽度][.精度][长度]类型"%-md" :左对齐,若m比实际少时,按实际输出。
"%m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m 省略时m=ne.g. "%7.2s" 输入CHINA输出" CH""%m.nf":输出浮点数,m为宽度,n为小数点右边数位e.g. "%3.1f"输入3852.99输出3853.0长度:为h短整形量,l为长整形量printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
java中printf中用法详解
java中printf中⽤法详解⽬前printf⽀持以下格式:%c 单个字符%d ⼗进制整数%f ⼗进制浮点数%o ⼋进制数%s 字符串%u ⽆符号⼗进制数%x ⼗六进制数%% 输出百分号%printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下⾯对组成格式说明的各项加以说明:①%:表⽰格式说明的起始符号,不可缺少。
②-:有-表⽰左对齐输出,如省略表⽰右对齐输出。
③0:有0表⽰指定空位填0,如省略表⽰指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。
N指精度。
⽤于说明输出的实型数的⼩数位数。
为指定n 时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。
h⽤于将整型的格式字符修正为short型。
---------------------------------------格式字符格式字符⽤以指定输出项的数据类型和输出格式。
①d格式:⽤来输出⼗进制整数。
有以下⼏种⽤法:%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。
如果数据的位数⼩于m,则左端补以空格,若⼤于m,则按实际位数输出。
%ld:输出长整型数据。
②o格式:以⽆符号⼋进制形式输出整数。
对长整型可以⽤"%lo"格式输出。
同样也可以指定字段宽度⽤“%mo”格式输出。
例:main() {int a = -1;printf("%d, %o", a, a);}运⾏结果:-1,177777程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为⼋进制数为(177777)8。
③x格式:以⽆符号⼗六进制形式输出整数。
对长整型可以⽤"%lx"格式输出。
同样也可以指定字段宽度⽤"%mx"格式输出。
④u格式:以⽆符号⼗进制形式输出整数。
对长整型可以⽤"%lu"格式输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf()格式printf()格式转换的一般形式如下%(flags)(width)(.prec)type以括号括起来的参数为选择性参数,而%与type则是必要的。
底下先介绍type的几种形式%d 整数的参数会被转成一有符号的十进制数字%u 整数的参数会被转成一无符号的十进制数字%o 整数的参数会被转成一无符号的八进制数字%x 整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示%X 整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示浮点型数%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入。
%e double型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示。
%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。
%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定。
%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。
字符及字符串%c 整型数的参数会被转成unsigned char型打印出。
%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止%p 如果是参数是“void*”型指针则使用十六进制格式显示。
prec 有几种情况1. 正整数的最小位数。
2. 在浮点型数中代表小数位数3. 在%g 格式代表有效位数的最大值。
4. 在%s格式代表字符串的最大长度。
5. 若为*符号则代表下个参数值为最大长度。
width为参数的最小长度,若此栏并非数值,而是*符号,则表示以下一个参数当做参数长度。
flags 有下列几种情况+ 一般在打印负数时,printf()会加印一个负号,此旗标会使得在打印正数前多一个正号(+)。
# 此旗标会根据其后转换字符的不同而有不同含义。
当在类型为o 之前(如%#o),则会在打印八进制数值前多印一个0(表示是八进制)。
而在类型为x 之前(%#x)则会在打印十六进制数前多印’0x’,在型态为e、E、f、g或G 之前则会强迫数值打印小数点。
在类型为g 或G之前时则同时保留小数点及小数位数末尾的零。
0 当有指定参数时,无数字的参数将补上0。
默认是关闭此旗标,所以一般会打印出空白字符最近在重温C语言,发现很多以前一知半解的知识点,找出来,转载一篇解释得很仔细的文章。
printf 格式输出关键词:printf%S A ABC ABCDEFGH%5S####A##ABC ABCDEFGH%.5S A ABC ABCDE%5.5S####A##ABC ABCDE%-5S A####ABC##ABCDEFGHPrintf 格式化字符串1-1212345123456789%d1-1212345123456789%6d#####1###-12#12345123456789%.4d0001-001212345123456789%6.4d##0001#-0012#12345123456789%-4d1####-12#12345123456789%04d0001-01212345123456789%+d+1-12+12345+123456789Printf格式化整型数值1.01.0001234512345.6789%f 1.0000000.0100000.00012312345.678900 %10.2d######1.00#####0.01######0.00##12345.67%e 1.000000e+001.000000e-021.234500e-041.234568e+04 %.4e 1.0000e+00 1.0000e-02 1.2345e-04 1.2346e+04%g10.010.0001234512345.76.023e23%f60229999999999975882752.000000%10.2e60229999999999975882752.00%e 6.023000e+23%.4e 6.0230e+23%g 6.023e+23Printf格式化浮点值printf()格式转换的一般形式如下%(flags)(width)(.prec)type以中括号括起来的参数为选择性参数,而%与type则是必要的。
底下先介绍type 的几种形式整数%d 整数的参数会被转成一有符号的十进制数字%u 整数的参数会被转成一无符号的十进制数字%o 整数的参数会被转成一无符号的八进制数字%x 整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示%X 整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示浮点型数%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入。
%e double型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示。
%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。
%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定。
%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。
字符及字符串%c 整型数的参数会被转成unsigned char型打印出。
%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止%p 如果是参数是“void *”型指针则使用十六进制格式显示。
prec 有几种情况1. 正整数的最小位数。
2. 在浮点型数中代表小数位数3. 在%g 格式代表有效位数的最大值。
4. 在%s格式代表字符串的最大长度。
5. 若为×符号则代表下个参数值为最大长度。
width为参数的最小长度,若此栏并非数值,而是*符号,则表示以下一个参数当做参数长度。
flags 有下列几种情况#NAME?+ 一般在打印负数时,printf()会加印一个负号,整数则不加任何负号。
此旗标会使得在打印正数前多一个正号(+)。
# 此旗标会根据其后转换字符的不同而有不同含义。
当在类型为o 之前(如%#o),则会在打印八进制数值前多印一个o。
而在类型为x 之前(%#x)则会在打印十六进制数前多印’0x’,在型态为e、E、f、g或G 之前则会强迫数值打印小数点。
在类型为g 或G之前时则同时保留小数点及小数位数末尾的零。
0 当有指定参数时,无数字的参数将补上0。
默认是关闭此旗标,所以一般会打印出空白字符。
printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。
N指精度。
用于说明输出的实型数的小数位数。
为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。
h用于将整型的格式字符修正为short型。
---------------------------------------格式字符格式字符用以指定输出项的数据类型和输出格式。
①d格式:用来输出十进制整数。
有以下几种用法:%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。
如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld:输出长整型数据。
②o格式:以无符号八进制形式输出整数。
对长整型可以用"%lo"格式输出。
同样也可以指定字段宽度用“%mo”格式输出。
例:main(){ int a = -1;printf("%d, %o", a, a);}运行结果:-1,177777程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。
③x格式:以无符号十六进制形式输出整数。
对长整型可以用"%lx"格式输出。
同样也可以指定字段宽度用"%mx"格式输出。
④u格式:以无符号十进制形式输出整数。
对长整型可以用"%lu"格式输出。
同样也可以指定字段宽度用“%mu”格式输出。
⑤c格式:输出一个字符。
⑥s格式:用来输出一个串。
有几中用法%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。
%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。
若串长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符。
这n个字符输出在m列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。
如果n>m,则自动取n值,即保证n个字符正常输出。
⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。
有以下几种用法:%f:不指定宽度,整数部分全部输出并输出6位小数。
%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。
⑧e格式:以指数形式输出实数。
可用以下形式:%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。
%m.ne和%-m.ne:m、n和”-”字符含义与前相同。
此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。
⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。
---------------------------------------关于printf函数的进一步说明:如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:printf("%f%%", 1.0/3);输出0.333333%。
---------------------------------------对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位.对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位.######################################拾遗########################################由高手指点对于m.n的格式还可以用如下方法表示(例)char ch[20];printf("%*.*s\n",m,n,ch);前边的*定义的是总的宽度,后边的定义的是输出的个数。